org.basex.query.xpath.func
Class Func

java.lang.Object
  extended by org.basex.query.ExprInfo
      extended by org.basex.query.xpath.expr.Expr
          extended by org.basex.query.xpath.func.Func
Direct Known Subclasses:
BooleanFunc, Ceiling, Concat, Contains, ContainsLC, Count, Distinct, Doc, EndsWith, False, Floor, Id, Lang, Last, LocalName, Matches, Name, NamespaceURI, Nodes, NormalizeSpace, Not, NumFunc, Position, Random, Round, Sort, StartsWith, StringFunc, StringLength, SubStr, SubstringAfter, SubstringBefore, Sum, Translate, True

public abstract class Func
extends Expr

Interface for XPath functions.

Author:
Workgroup DBIS, University of Konstanz 2005-08, ISC License, Tim Petrowsky

Field Summary
 java.lang.String desc
          Function description.
 
Constructor Summary
Func(Expr[] arg, java.lang.String dsc)
          Function constructor.
 
Method Summary
abstract  boolean checkArguments()
          Checks validity/number of arguments.
 Expr comp(XPContext ctx)
          Optimizes the expression.
 Item[] evalArgs(XPContext ctx)
          Evaluates the arguments.
 void plan(Serializer ser)
          Recursively sends the abstract syntax of this expression to the specified serializer.
 java.lang.String toString()
           
 boolean usesPos()
          Checks whether this Expression (or its children) make use of the position parameter.
 boolean usesSize()
          Checks whether this Expression (or its children) make use of the setsize parameter.
 
Methods inherited from class org.basex.query.xpath.expr.Expr
eval, indexEquivalent, indexSizes, returnedValue, sameAs
 
Methods inherited from class org.basex.query.ExprInfo
color, info, name
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

desc

public final java.lang.String desc
Function description.

Constructor Detail

Func

public Func(Expr[] arg,
            java.lang.String dsc)
Function constructor.

Parameters:
arg - arguments
dsc - expected function pattern
Method Detail

evalArgs

public final Item[] evalArgs(XPContext ctx)
                      throws QueryException
Evaluates the arguments.

Parameters:
ctx - query context
Returns:
xpath values
Throws:
QueryException - evaluation exception

checkArguments

public abstract boolean checkArguments()
Checks validity/number of arguments.

Returns:
result of comparison

usesSize

public boolean usesSize()
Description copied from class: Expr
Checks whether this Expression (or its children) make use of the setsize parameter. If not this allows early predicate evaluation.

Specified by:
usesSize in class Expr
Returns:
whether setsize is used

usesPos

public boolean usesPos()
Description copied from class: Expr
Checks whether this Expression (or its children) make use of the position parameter. If not this allows some nice optimizations.

Specified by:
usesPos in class Expr
Returns:
whether position is used

comp

public Expr comp(XPContext ctx)
          throws QueryException
Description copied from class: Expr
Optimizes the expression.

Specified by:
comp in class Expr
Parameters:
ctx - expression context
Returns:
optimized Expression
Throws:
QueryException - evaluation exception

toString

public final java.lang.String toString()
Specified by:
toString in class ExprInfo

plan

public final void plan(Serializer ser)
                throws java.io.IOException
Description copied from class: ExprInfo
Recursively sends the abstract syntax of this expression to the specified serializer.

Specified by:
plan in class ExprInfo
Parameters:
ser - serializer
Throws:
java.io.IOException - exception