Class QueryUtil

java.lang.Object
org.eclipse.equinox.p2.query.QueryUtil

public class QueryUtil extends Object
Helper class for query related tasks.
Since:
2.0
  • Field Details

  • Constructor Details

    • QueryUtil

      public QueryUtil()
  • Method Details

    • compoundQueryable

      public static <T> IQueryable<T> compoundQueryable(Collection<? extends IQueryable<T>> queryables)
      Creates a queryable that combines the given collection of input queryables
      Parameters:
      queryables - The collection of queryables to be combined
    • compoundQueryable

      public static <T> IQueryable<T> compoundQueryable(IQueryable<T> query1, IQueryable<T> query2)
      Creates a queryable that combines the two provided input queryables
      Parameters:
      query1 - The first queryable
      query2 - The second queryable
    • createCompoundQuery

      public static <T> IQuery<T> createCompoundQuery(Collection<? extends IQuery<? extends T>> queries, boolean and)
      Creates a compound query that combines the given queries. If all queries are candidate match queries, then the queries will be concatenated as a boolean 'and' or a boolean 'or' expression depending on the and flag. If at least one query is a full query, all queries will instead be evaluated using intersection when and is true or a union.
      Parameters:
      queries - The queries to perform
      and - true if this query represents an intersection or a logical 'and', and false if this query represents a union or a logical 'or'.
      Returns:
      A compound query
    • createCompoundQuery

      public static <T> IQuery<T> createCompoundQuery(IQuery<? extends T> query1, IQuery<T> query2, boolean and)
      Creates a compound query that combines the two queries. If both queries are candidate match queries, then the queries will be concatenated as a boolean 'and' or a boolean 'or' expression depending on the and flag. If at least one query is a full query, all queries will instead be evaluated using intersection when and is true or a union.
      Parameters:
      query1 - the first query
      query2 - the second query
      and - true if this query represents an intersection or a logical 'and', and false if this query represents a union or a logical 'or'.
      Returns:
      A compound query
    • createIUAnyQuery

      public static IQuery<IInstallableUnit> createIUAnyQuery()
      Returns a query that matches all InstallableUnit elements
    • createIUCategoryMemberQuery

      public static IQuery<IInstallableUnit> createIUCategoryMemberQuery(IInstallableUnit category)
      Creates a new query that will return the members of the given category. If the specified IInstallableUnit is not a category, then no installable unit will satisfy the query.
      Parameters:
      category - The category
      Returns:
      A query that returns category members
    • createIUCategoryQuery

      public static IQuery<IInstallableUnit> createIUCategoryQuery()
      Creates a query matching every IInstallableUnit that is a category.
      Returns:
      The query that matches categories
      Since:
      2.0
    • createIUGroupQuery

      public static IQuery<IInstallableUnit> createIUGroupQuery()
      Creates a query matching every IInstallableUnit that is a group.
      Returns:
      a query that matches all groups
    • createIUPatchQuery

      public static IQuery<IInstallableUnit> createIUPatchQuery()
      Creates an IInstallableUnit that will match all patches.
      Returns:
      The created query
    • createIUProductQuery

      public static IQuery<IInstallableUnit> createIUProductQuery()
      Creates an IInstallableUnit that will match all products.
      Returns:
      The created query
      Since:
      2.2
    • createIUPropertyQuery

      public static IQuery<IInstallableUnit> createIUPropertyQuery(String propertyName, String propertyValue)
      Creates a query that searches for IInstallableUnit instances that have a property whose value matches the provided value. If no property name is specified, then all IInstallableUnit instances are accepted.
      Parameters:
      propertyName - The key of the property to match or null to match all
      propertyValue - The value of the property. Can be ANY to match all values except null
      Returns:
      The query matching properties
    • createIUQuery

      public static IQuery<IInstallableUnit> createIUQuery(IVersionedId versionedId)
      Creates a query that will match any IInstallableUnit with the given id and version.
      Parameters:
      versionedId - The precise id/version combination that a matching unit must have
      Returns:
      a query that matches IU's by id and version
    • createIUQuery

      public static IQuery<IInstallableUnit> createIUQuery(String id)
      Creates a query that will match any IInstallableUnit with the given id, regardless of version.
      Parameters:
      id - The installable unit id to match, or null to match any id
      Returns:
      a query that matches IU's by id
    • createIUQuery

      public static IQuery<IInstallableUnit> createIUQuery(String id, Version version)
      Creates a query that will match any IInstallableUnit with the given id and version.
      Parameters:
      id - The installable unit id to match, or null to match any id
      version - The precise version that a matching unit must have or null to match any version
      Returns:
      a query that matches IU's by id and version
    • createIUQuery

      public static IQuery<IInstallableUnit> createIUQuery(String id, VersionRange range)
      Creates a query that will match any IInstallableUnit with the given id, and whose version falls in the provided range.
      Parameters:
      id - The installable unit id to match, or null to match any id
      range - The version range to match or null to match any range.
      Returns:
      a query that matches IU's by id and range
    • createLatestIUQuery

      public static IQuery<IInstallableUnit> createLatestIUQuery()
      Creates a query that returns the latest version for each unique id of an IVersionedId. All other elements are discarded.
      Returns:
      A query matching the latest version for each id.
    • createLatestQuery

      public static <T extends IVersionedId> IQuery<T> createLatestQuery(IQuery<T> query)
      Creates a query that returns the latest version for each unique id of an IVersionedId from the collection produced by query. All other elements are discarded.
      Parameters:
      query - The query that precedes the latest query when evaluating.
      Returns:
      A query matching the latest version for each id.
    • createLimitQuery

      public static <T> IQuery<T> createLimitQuery(IQuery<T> query, int limit)
      Creates a limit query that can be used to limit the number of query results returned. Once the limit is reached, the query is terminated.
      Parameters:
      query - The query that should be limited
      limit - A positive integer denoting the limit
      Returns:
      A limited query
      Since:
      2.0
    • createMatchQuery

      public static IQuery<IInstallableUnit> createMatchQuery(IExpression matchExpression, Object... parameters)
      Creates an IInstallableUnit query that will iterate over all candidates and discriminate by applying the boolean matchExpression on each candidate.
      Parameters:
      matchExpression - The boolean expression used for filtering one candidate
      parameters - Values for parameter substitution
      Returns:
      The created query
    • createMatchQuery

      public static IQuery<IInstallableUnit> createMatchQuery(String matchExpression, Object... parameters)
      Parses the matchExpression and creates an IInstallableUnit query that will iterate over all candidates and discriminate by applying the boolean matchExpression on each candidate.
      Parameters:
      matchExpression - The boolean expression used for filtering one candidate
      parameters - Values for parameter substitution
      Returns:
      The created query
    • createMatchQuery

      public static <T> IQuery<T> createMatchQuery(Class<? extends T> matchingClass, IExpression matchExpression, Object... parameters)
      Creates an query that will iterate over all candidates and discriminate all candidates that are not instances of matchingClass or for which the boolean matchExpression returns false.
      Parameters:
      matchingClass - The class that matching candidates must be an instance of
      matchExpression - The boolean expression used for filtering one candidate
      parameters - Values for parameter substitution
      Returns:
      The created query
    • createMatchQuery

      public static <T> IQuery<T> createMatchQuery(Class<? extends T> matchingClass, String matchExpression, Object... parameters)
      Parses the matchExpression and creates an query that will iterate over all candidates and discriminate all candidates that are not instances of matchingClass or for which the boolean matchExpression returns false.
      Type Parameters:
      T - The type of input object that the created query accepts
      Parameters:
      matchingClass - The class that matching candidates must be an instance of
      matchExpression - The boolean expression used for filtering one candidate
      parameters - Values for parameter substitution
      Returns:
      The created query
    • createPipeQuery

      public static <T> IQuery<T> createPipeQuery(Collection<? extends IQuery<? extends T>> queries)

      Creates a piped query based on the provided input queries.

      A pipe is a composite query in which each sub-query is executed in succession. The results from the ith sub-query are piped as input into the i+1th sub-query. The query will short-circuit if any query returns an empty result set.

      Parameters:
      queries - the ordered list of queries to perform
      Returns:
      A query pipe
    • createPipeQuery

      public static <T> IQuery<T> createPipeQuery(IQuery<? extends T> query1, IQuery<? extends T> query2)

      Creates a piped query based on the provided input queries.

      A pipe is a composite query in which each sub-query is executed in succession. The results from the ith sub-query are piped as input into the i+1th sub-query. The query will short-circuit if any query returns an empty result set.

      Parameters:
      query1 - the first query
      query2 - the second query
      Returns:
      A query pipe
    • createQuery

      public static IQuery<IInstallableUnit> createQuery(IExpression expression, Object... parameters)
      Creates an IInstallableUnit query based on an expression that uses all candidates as input.
      Parameters:
      expression - The query expression
      parameters - Values for parameter substitution
      Returns:
      The created query
    • createQuery

      public static IQuery<IInstallableUnit> createQuery(String expression, Object... parameters)
      Parses the expression and creates an IInstallableUnit query. The expression is expected to use all candidates as input.
      Parameters:
      expression - The query expression
      parameters - Values for parameter substitution
      Returns:
      The created query
    • createQuery

      public static <T> IQuery<T> createQuery(Class<? extends T> matchingClass, IExpression expression, Object... parameters)
      Creates a query that will limit the result to instances of the matchingClass. The expression is expected to use all candidates as input.
      Parameters:
      matchingClass - The class used as discriminator for the result
      expression - The query expression
      parameters - Values for parameter substitution
      Returns:
      The created query
    • createQuery

      public static <T> IQuery<T> createQuery(Class<? extends T> matchingClass, String expression, Object... parameters)
      Parses the expression and creates a query that will limit the result to instances of the matchingClass. The expression is expected to use all candidates as input.
      Parameters:
      matchingClass - The class used as discriminator for the result
      expression - The query expression
      parameters - Values for parameter substitution
      Returns:
      The created query
    • isCategory

      public static boolean isCategory(IInstallableUnit iu)
      Test if the IInstallableUnit is a category.
      Parameters:
      iu - the element being tested.
      Returns:
      true if the parameter is a category.
    • isFragment

      public static boolean isFragment(IInstallableUnit iu)
      Test if the IInstallableUnit is a fragment.
      Parameters:
      iu - the element being tested.
      Returns:
      true if the parameter is a fragment.
    • isGroup

      public static boolean isGroup(IInstallableUnit iu)
      Test if the IInstallableUnit is a group.
      Parameters:
      iu - the element being tested.
      Returns:
      true if the parameter is a group.
    • isProduct

      public static boolean isProduct(IInstallableUnit iu)
      Test if the IInstallableUnit is a product.
      Parameters:
      iu - the element being tested.
      Returns:
      true if the parameter is a group.
      Since:
      2.2
    • isPatch

      public static boolean isPatch(IInstallableUnit iu)
      Test if the IInstallableUnit is a patch.
      Parameters:
      iu - the element being tested.
      Returns:
      true if the parameter is a patch.