Class VersionSpecificRelationalOperatorQueryFactory

java.lang.Object
com.atlassian.jira.search.jql.AbstractOperatorQueryFactory<Version>
com.atlassian.jira.search.jql.VersionSpecificRelationalOperatorQueryFactory
All Implemented Interfaces:
OperatorSpecificQueryFactory

public class VersionSpecificRelationalOperatorQueryFactory extends AbstractOperatorQueryFactory<Version> implements OperatorSpecificQueryFactory
Creates queries for relational version operators Operator.GREATER_THAN, Operator.LESS_THAN, Operator.GREATER_THAN_EQUALS, Operator.LESS_THAN_EQUALS.

Version comparison is project-specific and based on version sequence. Versions can only be compared within the same project. When a version name exists in multiple projects, the query combines results from all matching projects.

Example: For operator Operator.GREATER_THAN, the factory finds all versions in the same project that are greater than the given version and creates a query matching any of these versions.

This class replaces VersionSpecificRelationalOperatorQueryFactory

Since:
10.4
  • Constructor Details

    • VersionSpecificRelationalOperatorQueryFactory

      public VersionSpecificRelationalOperatorQueryFactory(Comparator<? super Version> comparator, VersionResolver versionResolver, IndexInfoResolver<Version> versionIndexInfoResolver)
      Parameters:
      comparator - to compare versions
      versionResolver - to map version's name to version object
      versionIndexInfoResolver - to map version object to index value
  • Method Details

    • createQueryForSingleValue

      public Query createQueryForSingleValue(String fieldName, Operator operator, List<QueryLiteral> rawValues)
      Description copied from interface: OperatorSpecificQueryFactory
      Generates the query for a single operand id.
      Specified by:
      createQueryForSingleValue in interface OperatorSpecificQueryFactory
      Parameters:
      fieldName - the index field name the query should be generated for.
      operator - operator which is handled by this implementation.
      rawValues - a list of raw values associated with the operand. These values are converted into index-specific representations.
      Returns:
      the result that contains the query of type Query and its metadata.
    • createQueryForMultipleValues

      public Query createQueryForMultipleValues(String fieldName, Operator operator, List<QueryLiteral> rawValues)
      Description copied from interface: OperatorSpecificQueryFactory
      Generates the query for a list of operand ids.
      Specified by:
      createQueryForMultipleValues in interface OperatorSpecificQueryFactory
      Parameters:
      fieldName - the index field name the query should be generated for.
      operator - operator which is handled by this implementation.
      rawValues - a list of raw values associated with the operand. These values are converted into index-specific representations.
      Returns:
      the result that contains the query of type Query and its metadata.
    • createQueryForEmptyOperand

      public Query createQueryForEmptyOperand(String fieldName, Operator operator)
      Description copied from interface: OperatorSpecificQueryFactory
      Generates the query for an operand that supports EMPTY values.
      Specified by:
      createQueryForEmptyOperand in interface OperatorSpecificQueryFactory
      Parameters:
      fieldName - the index field name the query should be generated for.
      operator - operator which is handled by this implementation.
      Returns:
      the result that contains the query of type Query and its metadata.
    • handlesOperator

      public boolean handlesOperator(Operator operator)
      Specified by:
      handlesOperator in interface OperatorSpecificQueryFactory
      Returns:
      true if this implementation can handle the given operator, false otherwise.