Package org.basex.query.func
Class StaticFuncCall
java.lang.Object
org.basex.query.expr.ExprInfo
org.basex.query.expr.Expr
org.basex.query.expr.ParseExpr
org.basex.query.expr.Arr
org.basex.query.func.FuncCall
org.basex.query.func.StaticFuncCall
Function call for user-defined functions.
- Author:
- BaseX Team 2005-21, BSD License, Christian Gruen
-
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionStaticFuncCall(QNm name, Expr[] args, StaticContext sc, InputInfo info) Function call constructor. -
Method Summary
Modifier and TypeMethodDescriptionbooleanaccept(ASTVisitor visitor) Traverses this expression, notifying the visitor of declared and used variables, and checking the tree for other recursive properties.Compiles and optimizes the expression, assigns types and cardinalities.copy(CompileContext cc, IntObjMap<Var> vm) Copies an expression.Returns a string description of the expression.booleanThis function is e.g.evalFunc(QueryContext qc) func()Returns the called function if already known.booleanIndicates if an expression has one of the specified compiler properties.init(StaticFunc sf) Initializes the function and checks for visibility.Optimizes an already compiled expression without recompiling its sub-expressions.voidCreates a query plan.voidplan(QueryString qs) Creates a query string.booleanvacuous()Tests if this is a vacuous expression (empty sequence or error function).Methods inherited from class org.basex.query.func.FuncCall
markTailCalls, valueMethods inherited from class org.basex.query.expr.Arr
allAreValues, args, checkUp, copyAll, count, exprSize, flatten, inline, inline, inlineable, mayBePositional, simplifyAllMethods inherited from class org.basex.query.expr.ParseExpr
adoptType, atomValue, checkAllUp, checkNoEmpty, checkNoEmpty, checkNoneUp, checkNoUp, checkType, checkType, checkUp, copyType, ctxValue, ebv, item, iter, refineType, seqType, size, test, toArray, toArray, toAtomItem, toB64, toB64, toBin, toBin, toBoolean, toBoolean, toBytes, toBytes, toDouble, toDouble, toElem, toFloat, toFunc, toItem, toItem, toLong, toLong, toMap, toMap, toNode, toNode, toNodeOrNull, toNumber, toNumberOrNull, toQNm, toQNm, toToken, toToken, toTokenOrNull, toZeroTokenMethods inherited from class org.basex.query.expr.Expr
arg, atomItem, atomIter, data, data, ddo, funcType, hasFreeVars, indexAccessible, isSimple, mergeEbv, simplifyFor, typeCheck, uses, visitAllMethods inherited from class org.basex.query.expr.ExprInfo
toErrorString, toString
-
Constructor Details
-
StaticFuncCall
Function call constructor.- Parameters:
name- function nameargs- argumentssc- static contextinfo- input info
-
-
Method Details
-
compile
Description copied from class:ExprCompiles and optimizes the expression, assigns types and cardinalities.- Overrides:
compilein classArr- Parameters:
cc- compilation context- Returns:
- optimized expression
- Throws:
QueryException- query exception
-
optimize
Description copied from class:ExprOptimizes an already compiled expression without recompiling its sub-expressions. -
copy
Description copied from class:ExprCopies an expression. Used for inlining functions, or for copying static queries. It is utilized byVarRef.inline(org.basex.query.InlineContext),FuncItem.inline(org.basex.query.expr.Expr[], org.basex.query.CompileContext),Closure.inline(org.basex.query.InlineContext)andStaticFunc.inline(org.basex.query.expr.Expr[], org.basex.query.CompileContext).- Specified by:
copyin classExpr- Parameters:
cc- compilation contextvm- mapping from old variable IDs to new variable copies. Required byClosure.copy(org.basex.query.CompileContext, org.basex.util.hash.IntObjMap<org.basex.query.var.Var>)andVarRef.copy(org.basex.query.CompileContext, org.basex.util.hash.IntObjMap<org.basex.query.var.Var>)- Returns:
- copied expression
-
init
Initializes the function and checks for visibility.- Parameters:
sf- function reference- Returns:
- self reference
- Throws:
QueryException- query exception
-
func
Returns the called function if already known.- Returns:
- the function or
null
-
vacuous
public boolean vacuous()Description copied from class:ExprTests if this is a vacuous expression (empty sequence or error function). This check is needed for updating queries. -
has
Description copied from class:ExprIndicates if an expression has one of the specified compiler properties. This method must only be called at compile time. It is invoked to test properties of sub-expressions. It returnstrueif at least flag matches an expression. -
accept
Description copied from class:ExprTraverses this expression, notifying the visitor of declared and used variables, and checking the tree for other recursive properties. -
evalFunc
-
equals
Description copied from class:ArrThis function is e.g. called by:Must be overwritten by implementing class.If.optimize(CompileContext),Switch.optimize(CompileContext),Typeswitch.optimize(CompileContext), in order to discard identical expressions.CmpR.mergeEbv(Expr, boolean, CompileContext)orCmpSR.mergeEbv(Expr, boolean, CompileContext), in order to merge expressions with identical input.CmpG.optimize(CompileContext)orCmpV.optimize(CompileContext), in order to pre-evaluate equality tests.CmpG.optimize(CompileContext)orPos.get(Expr, CmpV.OpV, InputInfo, CompileContext), in order to compare the start and end value.PathCache, in order to find identical root values at runtime.
-
description
Description copied from class:ExprInfoReturns a string description of the expression. This method is only called by error messages. Contrary to theExprInfo.toString()method, arguments are not included in the output.- Overrides:
descriptionin classExprInfo- Returns:
- result of check
-
plan
Description copied from class:ExprInfoCreates a query plan. -
plan
Description copied from class:ExprInfoCreates a query string.
-