Package org.basex.query.func
Class DynFuncCall
- 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.DynFuncCall
-
public final class DynFuncCall extends FuncCall
Dynamic function call.- Author:
- BaseX Team 2005-24, BSD License, Leo Woerteler
-
-
Constructor Summary
Constructors Constructor Description DynFuncCall(InputInfo info, boolean updating, boolean ndt, Expr expr, Expr... args)
Function constructor.DynFuncCall(InputInfo info, Expr expr, Expr... args)
Function constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
accept(ASTVisitor visitor)
Traverses this expression, notifying the visitor of declared and used variables, and checking the tree for other recursive properties.void
checkUp()
Checks if the updating semantics are satisfied.Expr
compile(CompileContext cc)
Compiles and optimizes the expression, assigns types and cardinalities.Expr
copy(CompileContext cc, IntObjMap<Var> vm)
Copies an expression.String
description()
Returns a string description of the expression.boolean
equals(Object obj)
This function is e.g.boolean
has(Flag... flags)
Indicates if an expression has one of the specified compiler properties.void
markInlined(FuncItem item)
Marks this call after it was inlined from the given function item.Expr
optimize(CompileContext cc)
Optimizes an already compiled expression without recompiling its sub-expressions.void
toString(QueryString qs)
Creates a query string.void
toXml(QueryPlan plan)
Creates a query plan.-
Methods inherited from class org.basex.query.func.FuncCall
markTailCalls, value
-
Methods inherited from class org.basex.query.expr.Arr
allAreValues, arg, args, copyAll, count, exprSize, flatten, inline, inlineable, mayBePositional, removeEmpty, simplifyAll
-
Methods inherited from class org.basex.query.expr.ParseExpr
adoptType, atomValue, checkAllUp, checkNoneUp, checkNoUp, checkType, checkType, checkUp, copyType, ctxValue, data, info, item, iter, refineType, sc, seqType, size, test, toArray, toArray, toAtomItem, toBin, toBin, toBinOrNull, toBoolean, toBoolean, toBooleanOrFalse, toBytes, toBytes, toDouble, toDouble, toElem, toElem, toEnum, toFloat, toFunction, toLong, toLong, toLong, toMap, toMap, toNode, toNode, toNodeOrNull, toNumber, toNumber, toNumberOrNull, toQNm, toQNmOrNull, toRecord, toString, toString, toStringOrNull, toToken, toToken, toTokenOrNull, toZeroToken
-
Methods inherited from class org.basex.query.expr.Expr
arg, atomItem, atomIter, ddo, funcType, hasFreeVars, indexAccessible, info, isSimple, mergeEbv, optimizePos, simplify, simplifyFor, typeCheck, uses, vacuous, visitAll
-
Methods inherited from class org.basex.query.expr.ExprInfo
toErrorString, toString
-
-
-
-
Method Detail
-
compile
public Expr compile(CompileContext cc) throws QueryException
Description copied from class:Expr
Compiles and optimizes the expression, assigns types and cardinalities.- Overrides:
compile
in classArr
- Parameters:
cc
- compilation context- Returns:
- optimized expression
- Throws:
QueryException
- query exception
-
optimize
public Expr optimize(CompileContext cc) throws QueryException
Description copied from class:Expr
Optimizes an already compiled expression without recompiling its sub-expressions.- Overrides:
optimize
in classExpr
- Parameters:
cc
- compilation context- Returns:
- optimized expression
- Throws:
QueryException
- query exception
-
checkUp
public void checkUp() throws QueryException
Description copied from class:Expr
Checks if the updating semantics are satisfied. This function is only called if any updating expression was found in the query.- Overrides:
checkUp
in classArr
- Throws:
QueryException
- query exception
-
markInlined
public void markInlined(FuncItem item)
Marks this call after it was inlined from the given function item.- Parameters:
item
- the function item
-
copy
public Expr copy(CompileContext cc, IntObjMap<Var> vm)
Description copied from class:Expr
Copies 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:
copy
in 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
-
accept
public boolean accept(ASTVisitor visitor)
Description copied from class:Expr
Traverses this expression, notifying the visitor of declared and used variables, and checking the tree for other recursive properties.
-
has
public boolean has(Flag... flags)
Description copied from class:Expr
Indicates 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 returnstrue
if at least flag matches an expression.
-
equals
public boolean equals(Object obj)
Description copied from class:Arr
This 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)
, in order to compare the start and end value.PathCache
, in order to find identical root values at runtime.
-
description
public String description()
Description copied from class:ExprInfo
Returns 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:
description
in classExprInfo
- Returns:
- result of check
-
toXml
public void toXml(QueryPlan plan)
Description copied from class:ExprInfo
Creates a query plan.
-
toString
public void toString(QueryString qs)
Description copied from class:ExprInfo
Creates a query string.
-
-