public class SubQueryExpression extends ValueExpression implements BindVariableChangedListener, SaveValueChangedListener
| Constructor and Description |
|---|
SubQueryExpression(Query q) |
| Modifier and Type | Method and Description |
|---|---|
void |
bindVariableChanged(BindVariableChangedEvent ev) |
Object |
evaluate(Object o,
Query q) |
String |
getAccessor() |
Class |
getExpectedReturnType(Query q)
Return the class of the object that "should" be returned from a call to the:
Expression.getValue(Object,Query) method. |
com.gentlyweb.utils.Getter |
getGetter() |
Query |
getQuery() |
boolean |
hasFixedResult(Query q)
Return whether the expression will evaluate to a fixed/constant result.
|
void |
init(Query q)
Perform the necessary initialisation for this expression.
|
boolean |
isTrue(Object o,
Query q)
This method allows ANY expression (including those that extend
ValueExpression)
to be used in the WHERE and HAVING clauses but ensuring that a boolean value is
available for every expression. |
void |
saveValueChanged(SaveValueChangedEvent ev) |
void |
setAccessor(String acc) |
String |
toString()
Return a string representation of the expression, making this abstract forces
sub-classes to provide an implementation.
|
getValueisBracketed, setBracketedpublic SubQueryExpression(Query q)
public void bindVariableChanged(BindVariableChangedEvent ev)
bindVariableChanged in interface BindVariableChangedListenerpublic void saveValueChanged(SaveValueChangedEvent ev)
saveValueChanged in interface SaveValueChangedListenerpublic com.gentlyweb.utils.Getter getGetter()
public void setAccessor(String acc)
public String getAccessor()
public Query getQuery()
public boolean hasFixedResult(Query q)
ExpressionExpression.isTrue(Object,Query) or Expression.getValue(Object,Query)
methods will return the same object (or that o1.equals (o2) == true)
regardless of the object passed to the method.hasFixedResult in class Expressionq - The Query object.true if the expression evaluates to a fixed/constant result.public Class getExpectedReturnType(Query q) throws QueryParseException
ExpressionExpression.getValue(Object,Query) method. It may be that repeated executions
of a query will return different classes from this method. In general
sub-classes should take this variance into account.getExpectedReturnType in class Expressionq - The Query object.Expression.getValue(Object,Query)
method.QueryParseException - If something goes wrong with determining the type.public void init(Query q) throws QueryParseException
Expressioninit in class Expressionq - The Query object.QueryParseException - If something goes wrong with the initialisation.public boolean isTrue(Object o, Query q) throws QueryExecutionException
ExpressionValueExpression)
to be used in the WHERE and HAVING clauses but ensuring that a boolean value is
available for every expression.isTrue in class Expressiono - The current object to evaluate the expression on.q - The Query object.true if the expression evaluates to true (well duh...).QueryExecutionException - If there is a problem with the execution of the
expression.public Object evaluate(Object o, Query q) throws QueryExecutionException
evaluate in class ValueExpressionQueryExecutionExceptionpublic String toString()
ExpressiontoString in class Expression