Interface JqlOperandResolver

All Known Implementing Classes:
DefaultJqlOperandResolver

public interface JqlOperandResolver
Responsible for validating Operands and extracting the QueryLiteral values from them.
Since:
v4.0
  • Method Details

    • validate

      MessageSet validate(ApplicationUser searcher, Operand operand, WasClause clause)
    • getValues

      List<QueryLiteral> getValues(ApplicationUser searcher, Operand operand, TerminalClause terminalClause)
      Return the values contained within the passed operand.
      Parameters:
      searcher - the user performing the search
      operand - the operand whose values should be returned. Must not be null.
      terminalClause - the terminal clause that contained the operand
      Returns:
      a list of the values in the literal. May return null on an error.
    • getValues

      List<QueryLiteral> getValues(QueryCreationContext queryCreationContext, Operand operand, TerminalClause terminalClause)
      Return the values contained within the passed operand.
      Parameters:
      queryCreationContext - the context of query creation
      operand - the operand whose values should be returned. Must not be null.
      terminalClause - the terminal clause that contained the operand
      Returns:
      a list of the values in the literal. May return null on an error.
    • validate

      MessageSet validate(ApplicationUser user, Operand operand, TerminalClause terminalClause)
      Validates the operand against its handler.
      Parameters:
      user - the user who is validating. May be null.
      operand - the operand to be validated. Must not be null.
      terminalClause - the terminal clause that contained the operand
      Returns:
      a MessageSet containing any errors reported. Note: if the operand is unknown, an error message will be added to the message set returned. Never null.
    • sanitiseFunctionOperand

      FunctionOperand sanitiseFunctionOperand(ApplicationUser searcher, FunctionOperand operand)
      Sanitise a function operand for the specified user, so that information is not leaked.
      Parameters:
      searcher - the user performing the search
      operand - the operand to sanitise; will only be sanitised if valid
      Returns:
      the sanitised operand; never null.
    • getSingleValue

      QueryLiteral getSingleValue(ApplicationUser user, Operand operand, TerminalClause clause)
      Returns the single value contained within the passed operand. If the operand contains more than one value, an exception is thrown.
      Parameters:
      user - the user who is retrieving the values. May be null.
      operand - the operand whose values should be returned. Must not be null.
      clause - the terminal clause that contained the operand
      Returns:
      the single value present in the operand, or null if there is no value.
      Throws:
      IllegalArgumentException - if the operand contains more than one value.
    • isEmptyOperand

      boolean isEmptyOperand(Operand operand)
      Returns true if the operand represents an EMPTY operand.
      Parameters:
      operand - the operand to check if it is a EMPTY operand
      Returns:
      true if the operand is an EMPTY operand, false otherwise.
    • isFunctionOperand

      boolean isFunctionOperand(Operand operand)
      Returns true if the passed operand is a function call.
      Parameters:
      operand - the operand to check. Cannot be null.
      Returns:
      true of the passed operand is a function operand, false otherwise.
    • isListOperand

      boolean isListOperand(Operand operand)
      Returns true if the passed operand returns a list of values.
      Parameters:
      operand - the operand to check. Cannot be null.
      Returns:
      true if the passed operand returns a list of values or false otherwise.
    • isValidOperand

      boolean isValidOperand(Operand operand)
      Returns true if the operand is one which is known about. This is:

      Parameters:
      operand - the operand; cannot be null.
      Returns:
      true if it is known, false otherwise.