Package org.basex.query.expr
Class SimpleMap
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.expr.SimpleMap
Simple map operator.
- Author:
- BaseX Team 2005-21, BSD License, Christian Gruen
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal booleanaccept(ASTVisitor visitor) Traverses this expression, notifying the visitor of declared and used variables, and checking the tree for other recursive properties.final voidcheckUp()Checks if the updating semantics are satisfied.final ExprCompiles and optimizes the expression, assigns types and cardinalities.final VarUsageChecks how often a variable or context reference is used in this expression.data()Returns the data reference bound to this expression.Returns a string description of the expression.booleanThis function is e.g.static Exprget(CompileContext cc, InputInfo ii, Expr... exprs) Creates a new, optimized map expression, or the first expression if only one was specified.final booleanIndicates if an expression has one of the specified compiler properties.final Exprinline(InlineContext ic) Inlines an expression into this one, replacing all variable or context references.final booleanChecks if inlining is possible.voidFinds and marks tail calls, enabling TCO.final ExprOptimizes an already compiled expression without recompiling its sub-expressions.voidplan(QueryString qs) Creates a query string.final ExprsimplifyFor(CompileContext.Simplify mode, CompileContext cc) This function is called at compile time for expressions whose operands might be simplified.toPath(CompileContext cc) Converts the map to a path expression.booleanvacuous()Tests if this is a vacuous expression (empty sequence or error function).Methods inherited from class org.basex.query.expr.Arr
allAreValues, args, copyAll, exprSize, flatten, inline, mayBePositional, plan, 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, toZeroToken, valueMethods inherited from class org.basex.query.expr.Expr
arg, atomItem, atomIter, copy, data, ddo, funcType, hasFreeVars, indexAccessible, isSimple, mergeEbv, typeCheck, uses, visitAllMethods inherited from class org.basex.query.expr.ExprInfo
toErrorString, toString
-
Method Details
-
get
Creates a new, optimized map expression, or the first expression if only one was specified.- Parameters:
cc- compilation contextii- input infoexprs- one or more expressions- Returns:
- filter root, path or filter expression
- Throws:
QueryException- query exception
-
checkUp
Description copied from class:ExprChecks if the updating semantics are satisfied. This function is only called if any updating expression was found in the query.- Overrides:
checkUpin classArr- Throws:
QueryException- query exception
-
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. -
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.- Overrides:
optimizein classExpr- Parameters:
cc- compilation context- Returns:
- optimized expression
- Throws:
QueryException- query exception
-
data
Description copied from class:Expr -
toPath
Converts the map to a path expression.- Parameters:
cc- compilation context- Returns:
- converted or original expression
- Throws:
QueryException- query context
-
simplifyFor
public final Expr simplifyFor(CompileContext.Simplify mode, CompileContext cc) throws QueryException Description copied from class:ExprThis function is called at compile time for expressions whose operands might be simplified.- Overrides:
simplifyForin classExpr- Parameters:
mode- mode of simplificationcc- compilation context- Returns:
- simplified or original expression
- Throws:
QueryException- query exception- See Also:
-
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. -
count
Description copied from class:ExprChecks how often a variable or context reference is used in this expression. This function is called by:-
Closure.optimize(org.basex.query.CompileContext) -
GFLWOR.inlineForLet(org.basex.query.CompileContext) -
GFLWOR.optimizePos(org.basex.query.CompileContext) -
GFLWOR.simplify(org.basex.query.CompileContext) -
GFLWOR.unusedVars(org.basex.query.CompileContext) -
optimize(org.basex.query.CompileContext) -
TypeswitchGroup.optimize(org.basex.query.CompileContext)
-
-
inlineable
Description copied from class:ExprChecks if inlining is possible. This function is called byInlineContext.inlineable(org.basex.query.expr.Expr...)and:CNode.inlineable(org.basex.query.InlineContext)returns false if the new expression construct new nodes. The following tests might reject inlining if the expression is a context reference:- Overrides:
inlineablein classArr- Parameters:
ic- inlining context- Returns:
- result of check
-
inline
Description copied from class:ExprInlines an expression into this one, replacing all variable or context references. This function is called byInlineContext.inline(Expr)(see invocations of this functions for further inlinings). The variable reference is replaced in: The context is replaced in:- Overrides:
inlinein classArr- Parameters:
ic- inlining context- Returns:
- resulting expression if something has changed,
nullotherwise - Throws:
QueryException- query exception
-
markTailCalls
Description copied from class:ExprFinds and marks tail calls, enabling TCO.- Overrides:
markTailCallsin classExpr- Parameters:
cc- compilation context,nullif the changes should not be reported
-
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 string.
-