org.apache.openjpa.kernel.exps
Class UnaryMathVal

java.lang.Object
  extended by org.apache.openjpa.kernel.exps.Val
      extended by org.apache.openjpa.kernel.exps.UnaryMathVal
All Implemented Interfaces:
Serializable, Value
Direct Known Subclasses:
Abs, All, Any, Index, Size, Sqrt

abstract class UnaryMathVal
extends Val

Value produced by a mathematical operation on one value.

Author:
Abe White

Constructor Summary
UnaryMathVal(Val val)
          Constructor.
 
Method Summary
 void acceptVisit(ExpressionVisitor visitor)
          Accept a visit from a tree visitor.
protected  Object eval(Object candidate, Object orig, StoreContext ctx, Object[] params)
          Return this value for the given candidate.
 Class getType()
          Return the expected type for this value, or Object if the type is unknown.
protected abstract  Class getType(Class c)
          Return the type of this value based on the numeric type being operated on.
protected abstract  Object operate(Object o, Class c)
          Return the result of this mathematical operation on the given value.
 void setImplicitType(Class type)
          Set the implicit type of the value, based on how it is used in the filter.
 
Methods inherited from class org.apache.openjpa.kernel.exps.Val
eval, evaluate, evaluate, getAlias, getMetaData, getName, getPath, getSelectAs, isAggregate, isVariable, isXPath, setAlias, setMetaData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UnaryMathVal

public UnaryMathVal(Val val)
Constructor. Provide the value to operate on.

Method Detail

getType

public Class getType()
Description copied from interface: Value
Return the expected type for this value, or Object if the type is unknown.


setImplicitType

public void setImplicitType(Class type)
Description copied from interface: Value
Set the implicit type of the value, based on how it is used in the filter. This method is only called on values who return Object from Value.getType().


eval

protected Object eval(Object candidate,
                      Object orig,
                      StoreContext ctx,
                      Object[] params)
Description copied from class: Val
Return this value for the given candidate.

Specified by:
eval in class Val

getType

protected abstract Class getType(Class c)
Return the type of this value based on the numeric type being operated on.


operate

protected abstract Object operate(Object o,
                                  Class c)
Return the result of this mathematical operation on the given value.


acceptVisit

public void acceptVisit(ExpressionVisitor visitor)
Description copied from interface: Value
Accept a visit from a tree visitor.

Specified by:
acceptVisit in interface Value
Overrides:
acceptVisit in class Val


Copyright © 2006-2010 Apache Software Foundation. All Rights Reserved.