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

java.lang.Object
  extended by org.outerj.daisy.query.model.AbstractFunction
      extended by org.outerj.daisy.query.model.functions.LengthFunction
All Implemented Interfaces:
Expression, Function, ValueExpr

public class LengthFunction
extends AbstractFunction


Field Summary
static java.lang.String NAME
           
 
Fields inherited from class org.outerj.daisy.query.model.AbstractFunction
params
 
Constructor Summary
LengthFunction()
           
 
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.String getFunctionName()
           
 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.
 java.lang.String getTitle(java.util.Locale locale)
           
 QValueType getValueType()
          Returns the ValueType of this expression, or null if undetermined.
 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
 

Field Detail

NAME

public static final java.lang.String NAME
See Also:
Constant Field Values
Constructor Detail

LengthFunction

public LengthFunction()
Method Detail

getFunctionName

public java.lang.String getFunctionName()

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

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

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

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.