com.atlassian.jira.jql.operand
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 Summary
 QueryLiteral getSingleValue(com.opensymphony.user.User user, Operand operand, TerminalClause clause)
          Returns the single value contained within the passed operand.
 java.util.List<QueryLiteral> getValues(QueryCreationContext queryCreationContext, Operand operand, TerminalClause terminalClause)
          Return the values contained within the passed operand.
 java.util.List<QueryLiteral> getValues(com.opensymphony.user.User searcher, Operand operand, TerminalClause terminalClause)
          Return the values contained within the passed operand.
 boolean isEmptyOperand(Operand operand)
          Returns true if the operand represents an EMPTY operand.
 boolean isFunctionOperand(Operand operand)
          Returns true if the passed operand is a function call.
 boolean isListOperand(Operand operand)
          Returns true if the passed operand returns a list of values.
 boolean isValidOperand(Operand operand)
          Returns true if the operand is one which is known about.
 FunctionOperand sanitiseFunctionOperand(com.opensymphony.user.User searcher, FunctionOperand operand)
          Sanitise a function operand for the specified user, so that information is not leaked.
 MessageSet validate(com.opensymphony.user.User user, Operand operand, TerminalClause terminalClause)
          Validates the operand against its handler.
 

Method Detail

getValues

java.util.List<QueryLiteral> getValues(com.opensymphony.user.User 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

java.util.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(com.opensymphony.user.User 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(com.opensymphony.user.User 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(com.opensymphony.user.User 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:
java.lang.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.


Copyright © 2002-2010 Atlassian. All Rights Reserved.