org.basex.query.func
Class FNSimple

java.lang.Object
  extended by org.basex.data.ExprInfo
      extended by org.basex.query.expr.Expr
          extended by org.basex.query.expr.ParseExpr
              extended by org.basex.query.expr.Arr
                  extended by org.basex.query.func.StandardFunc
                      extended by org.basex.query.func.FNSimple

public final class FNSimple
extends StandardFunc

Simple functions.

Author:
BaseX Team 2005-12, BSD License, Christian Gruen

Nested Class Summary
 
Nested classes/interfaces inherited from class org.basex.query.expr.Expr
Expr.Flag
 
Field Summary
 
Fields inherited from class org.basex.query.expr.Arr
expr
 
Fields inherited from class org.basex.query.expr.ParseExpr
info, size, type
 
Constructor Summary
FNSimple(InputInfo ii, Function f, Expr... e)
          Constructor.
 
Method Summary
 Expr compEbv(QueryContext ctx)
          This method is overwritten by CmpG, CmpV and FNSimple.
 Item item(QueryContext ctx, InputInfo ii)
          Evaluates the expression and returns the resulting item or a null reference, if the expression yields an empty sequence.
 Iter iter(QueryContext ctx)
          Evaluates the expression and returns an iterator on the resulting items.
protected  Expr opt(QueryContext ctx)
          Performs function specific optimizations.
 Value value(QueryContext ctx)
          Evaluates the expression and returns the resulting value.
 
Methods inherited from class org.basex.query.func.StandardFunc
atom, bindings, cache, checkData, checkFile, compile, copy, dataLock, dateTimeToMs, description, encoding, has, isFunction, isVacuous, oneOf, optimize, plan, toString
 
Methods inherited from class org.basex.query.expr.Arr
accept, allAreValues, checkNoUp, checkUp, copyAll, count, exprSize, indexEquivalent, inline, removable, toString
 
Methods inherited from class org.basex.query.expr.ParseExpr
checkAdmin, checkAllUp, checkBinary, checkBln, checkColl, checkCreate, checkCtx, checkDbl, checkDBNode, checkEStr, checkEStr, checkFunc, checkItem, checkItr, checkItr, checkMap, checkNode, checkNode, checkNode, checkNoEmpty, checkNoneUp, checkNoUp, checkQNm, checkStr, checkStr, checkStrBin, checkType, checkWrite, compBln, copyType, ebv, optPre, preEval, size, test, type
 
Methods inherited from class org.basex.query.expr.Expr
addText, copy, hasFreeVars, indexAccessible, inlineAll, isEmpty, isItem, isValue, iterable, markTailCalls, sameAs, uses, visitAll
 
Methods inherited from class org.basex.data.ExprInfo
addPlan, addPlan, info, planAttr, planElem
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FNSimple

public FNSimple(InputInfo ii,
                Function f,
                Expr... e)
Constructor.

Parameters:
ii - input info
f - function definition
e - arguments
Method Detail

iter

public Iter iter(QueryContext ctx)
          throws QueryException
Description copied from class: Expr
Evaluates the expression and returns an iterator on the resulting items. If this method is not overwritten, Expr.item(org.basex.query.QueryContext, org.basex.util.InputInfo) must be implemented by an expression, as it may be called by this method.

Overrides:
iter in class ParseExpr
Parameters:
ctx - query context
Returns:
resulting item
Throws:
QueryException - query exception

value

public Value value(QueryContext ctx)
            throws QueryException
Description copied from class: Expr
Evaluates the expression and returns the resulting value.

Overrides:
value in class ParseExpr
Parameters:
ctx - query context
Returns:
iterator
Throws:
QueryException - query exception

item

public Item item(QueryContext ctx,
                 InputInfo ii)
          throws QueryException
Description copied from class: Expr
Evaluates the expression and returns the resulting item or a null reference, if the expression yields an empty sequence. If this method is not overwritten, Expr.iter(org.basex.query.QueryContext) must be implemented by an expression, as it may be called by this method.

Overrides:
item in class ParseExpr
Parameters:
ctx - query context
ii - input info
Returns:
iterator
Throws:
QueryException - query exception

opt

protected Expr opt(QueryContext ctx)
            throws QueryException
Description copied from class: StandardFunc
Performs function specific optimizations.

Overrides:
opt in class StandardFunc
Parameters:
ctx - query context
Returns:
evaluated item
Throws:
QueryException - query exception

compEbv

public Expr compEbv(QueryContext ctx)
Description copied from class: Expr

This method is overwritten by CmpG, CmpV and FNSimple. It is called at compile time by expressions that perform effective boolean value tests (e.g. If or Preds). If the arguments of the called expression return a boolean anyway, the expression will be simplified.

Example in CmpV: if($x eq true()) is rewritten to if($x), if $x is known to return a single boolean.

Overrides:
compEbv in class Expr
Parameters:
ctx - query context
Returns:
optimized expression