org.josql.expressions
Class NewObjectExpression

java.lang.Object
  extended by org.josql.expressions.Expression
      extended by org.josql.expressions.ValueExpression
          extended by org.josql.expressions.NewObjectExpression

public class NewObjectExpression
extends ValueExpression


Constructor Summary
NewObjectExpression()
           
 
Method Summary
 void addIntoExpression(Expression exp, String setter)
           
 Object evaluate(Object o, Query q)
           
 Class getExpectedReturnType(Query q)
          Return the class of the object that "should" be returned from a call to the: Expression.getValue(Object,Query) method.
 Object getValue(Object o, Query q)
          Get the value for this expression based upon the object passed in.
 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)
          Always return true because a new object is being created and thus will be unequal to null.
 void setClassName(String c)
           
 void setConstructorArgs(List exps)
           
 String toString()
          Return a string representation of the expression, making this abstract forces sub-classes to provide an implementation.
 
Methods inherited from class org.josql.expressions.Expression
isBracketed, setBracketed
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

NewObjectExpression

public NewObjectExpression()
Method Detail

addIntoExpression

public void addIntoExpression(Expression exp,
                              String setter)

setConstructorArgs

public void setConstructorArgs(List exps)

setClassName

public void setClassName(String c)

hasFixedResult

public boolean hasFixedResult(Query q)
Description copied from class: Expression
Return whether the expression will evaluate to a fixed/constant result. This allows certain optimisations to be performed when an expression is evaluated. A "fixed result" is basically one in which multiple calls to either the: Expression.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.

Specified by:
hasFixedResult in class Expression
Parameters:
q - The Query object.
Returns:
true if the expression evaluates to a fixed/constant result.

getExpectedReturnType

public Class getExpectedReturnType(Query q)
                            throws QueryParseException
Description copied from class: Expression
Return the class of the object that "should" be returned from a call to the: Expression.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.

Specified by:
getExpectedReturnType in class Expression
Parameters:
q - The Query object.
Returns:
The expected type that will be returned from the Expression.getValue(Object,Query) method.
Throws:
QueryParseException - If something goes wrong with determining the type.

init

public void init(Query q)
          throws QueryParseException
Description copied from class: Expression
Perform the necessary initialisation for this expression. The exact operations performed are defined by the sub-class.

Specified by:
init in class Expression
Parameters:
q - The Query object.
Throws:
QueryParseException - If something goes wrong with the initialisation.

isTrue

public boolean isTrue(Object o,
                      Query q)
Always return true because a new object is being created and thus will be unequal to null.

Specified by:
isTrue in class Expression
Parameters:
o - The object currently in "scope".
q - The Query object.
Returns:
true always.

evaluate

public Object evaluate(Object o,
                       Query q)
                throws QueryExecutionException
Specified by:
evaluate in class ValueExpression
Throws:
QueryExecutionException

getValue

public Object getValue(Object o,
                       Query q)
                throws QueryExecutionException
Description copied from class: Expression
Get the value for this expression based upon the object passed in. In general sub-classes should perform some operation on the object to generate their result. The Query object is provided so that sub-classes can gain access to the bind variables (if required), save values and so on. Whilst it may seem better to have the Query object as a member of this class this would then prevent the expression from being used separately from the Query (a design goal of JoSQL, i.e. independent processing).

Overrides:
getValue in class ValueExpression
Parameters:
o - The current object that the expression should be evaluated on.
q - The Query object.
Returns:
The value of the expression.
Throws:
QueryExecutionException - If something goes wrong with gaining the value.

toString

public String toString()
Description copied from class: Expression
Return a string representation of the expression, making this abstract forces sub-classes to provide an implementation.

Specified by:
toString in class Expression
Returns:
A string representation of the expression.


  Copyright © 2008 Gary Bentley. All Rights Reserved.