org.outerj.daisy.query.model.functions
Class AbstractUnaryMathFunction

java.lang.Object
  extended by org.outerj.daisy.query.model.AbstractFunction
      extended by org.outerj.daisy.query.model.functions.AbstractUnaryMathFunction
All Implemented Interfaces:
Expression, Function, ValueExpr
Direct Known Subclasses:
AbsFunction, CeilingFunction, FloorFunction

public abstract class AbstractUnaryMathFunction
extends AbstractFunction


Field Summary
 
Fields inherited from class org.outerj.daisy.query.model.AbstractFunction
params
 
Constructor Summary
AbstractUnaryMathFunction()
           
 
Method Summary
 java.lang.Object evaluate(QValueType valueType, org.outerj.daisy.repository.Document document, org.outerj.daisy.repository.Version version, org.outerj.daisy.repository.query.EvaluationContext evaluationContext)
          Evaluates this expression for the given document and/or version.
 java.lang.Object evaluate(QValueType valueType, org.outerj.daisy.repository.query.EvaluationContext evaluationContext)
          Evaluates the expression without access to document information.
 void generateSqlValueExpr(java.lang.StringBuffer sql, SqlGenerationContext context)
          Generates the SQL for this expression.
 java.lang.Object getOutputValue(org.outerj.daisy.repository.Document document, org.outerj.daisy.repository.Version version, org.outerj.daisy.repository.query.EvaluationContext evaluationContext)
          Returns the output value of this identifier for the given document and version.
 QValueType getOutputValueType()
          Identifies the type of data returned from the ValueExpr.getOutputValue(org.outerj.daisy.repository.Document, org.outerj.daisy.repository.Version, EvaluationContext) method.
protected abstract  java.lang.String[] getSqlFunction(SqlGenerationContext context)
           
 java.lang.String getTitle(java.util.Locale locale)
           
 QValueType getValueType()
          Returns the ValueType of this expression, or null if undetermined.
protected abstract  java.lang.Object performCalculation(java.math.BigDecimal value)
           
 void prepare(QueryContext context)
          A method that should be called before any of the others.
 
Methods inherited from class org.outerj.daisy.query.model.AbstractFunction
addParam, bindPreConditions, bindValueExpr, canTestAppliesTo, getColumn, getExpression, getLine, getLocation, getParam, getSqlPreConditions, isAclAllowed, isMultiValue, isOutputOnly, isSymbolicIdentifier, setLocation, translateSymbolic
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.outerj.daisy.query.model.Function
getFunctionName
 

Constructor Detail

AbstractUnaryMathFunction

public AbstractUnaryMathFunction()
Method Detail

prepare

public void prepare(QueryContext context)
             throws org.outerj.daisy.repository.query.QueryException
Description copied from interface: ValueExpr
A method that should be called before any of the others.

Specified by:
prepare in interface ValueExpr
Overrides:
prepare in class AbstractFunction
Throws:
org.outerj.daisy.repository.query.QueryException

evaluate

public java.lang.Object evaluate(QValueType valueType,
                                 org.outerj.daisy.repository.query.EvaluationContext evaluationContext)
                          throws org.outerj.daisy.repository.query.QueryException
Description copied from interface: ValueExpr
Evaluates the expression without access to document information. This will only work for expressions that do not need access to information from the document (thus typically without identifiers), otherwise this will throw an exception.

Parameters:
valueType - Indicates the type of object to return. This parameter only matters when
Throws:
org.outerj.daisy.repository.query.QueryException

evaluate

public java.lang.Object evaluate(QValueType valueType,
                                 org.outerj.daisy.repository.Document document,
                                 org.outerj.daisy.repository.Version version,
                                 org.outerj.daisy.repository.query.EvaluationContext evaluationContext)
                          throws org.outerj.daisy.repository.query.QueryException
Description copied from interface: ValueExpr
Evaluates this expression for the given document and/or version. The version argument can be null, in which case the data will be retrieved from the document object.

Throws:
org.outerj.daisy.repository.query.QueryException

performCalculation

protected abstract java.lang.Object performCalculation(java.math.BigDecimal value)

getSqlFunction

protected abstract java.lang.String[] getSqlFunction(SqlGenerationContext context)

generateSqlValueExpr

public void generateSqlValueExpr(java.lang.StringBuffer sql,
                                 SqlGenerationContext context)
                          throws org.outerj.daisy.repository.query.QueryException
Description copied from interface: ValueExpr
Generates the SQL for this expression.

Should throw an exception if this is an output-only ValueExpr.

Specified by:
generateSqlValueExpr in interface ValueExpr
Overrides:
generateSqlValueExpr in class AbstractFunction
Throws:
org.outerj.daisy.repository.query.QueryException

getValueType

public QValueType getValueType()
Description copied from interface: ValueExpr
Returns the ValueType of this expression, or null if undetermined.


getTitle

public java.lang.String getTitle(java.util.Locale locale)

getOutputValueType

public QValueType getOutputValueType()
Description copied from interface: ValueExpr
Identifies the type of data returned from the ValueExpr.getOutputValue(org.outerj.daisy.repository.Document, org.outerj.daisy.repository.Version, EvaluationContext) method.


getOutputValue

public java.lang.Object getOutputValue(org.outerj.daisy.repository.Document document,
                                       org.outerj.daisy.repository.Version version,
                                       org.outerj.daisy.repository.query.EvaluationContext evaluationContext)
                                throws org.outerj.daisy.repository.query.QueryException
Description copied from interface: ValueExpr
Returns the output value of this identifier for the given document and version. For symbolic identifiers this will be different from the value returned by ValueExpr.evaluate(QValueType, org.outerj.daisy.repository.Document, org.outerj.daisy.repository.Version, EvaluationContext). The version is allowed to be null.

Throws:
org.outerj.daisy.repository.query.QueryException


Copyright © -2012 . All Rights Reserved.