Package org.basex.query.expr
Class Arr
java.lang.Object
org.basex.query.expr.ExprInfo
org.basex.query.expr.Expr
org.basex.query.expr.ParseExpr
org.basex.query.expr.Arr
- Direct Known Subclasses:
Arith,CArray,CMap,Cmp,CNode,Delete,Except,FuncCall,If,Insert,Intersect,JavaCall,List,Logical,Lookup,PartFunc,Pos,Preds,Range,Rename,Replace,SimpleMap,StandardFunc,SwitchGroup,Transform,TransformWith,Union
Abstract array expression.
- Author:
- BaseX Team 2005-21, BSD License, Christian Gruen
-
Field Summary
Fields -
Constructor Summary
Constructors -
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.protected final booleanallAreValues(boolean limit) Returns true if all arguments are values (possibly of small size).Expr[]args()Returns the arguments/operands of an expression (function, list, etc).voidcheckUp()Checks if the updating semantics are satisfied.Compiles and optimizes the expression, assigns types and cardinalities.static <T extends Expr>
T[]copyAll(CompileContext cc, IntObjMap<Var> vm, T[] arr) Creates a deep copy of the given array.Checks how often a variable or context reference is used in this expression.booleanThis function is e.g.intexprSize()Counts the number of expressions in this expression's sub-tree.protected voidFlattens nested expressions.booleanIndicates if an expression has one of the specified compiler properties.inline(InlineContext ic) Inlines an expression into this one, replacing all variable or context references.inline(InlineContext ic, QuerySupplier<Expr> context) Inlines an expression (seeExpr.inline(InlineContext)).booleanChecks if inlining is possible.protected static booleanmayBePositional(Expr expr) Checks if the specified expression may be positional.voidCreates a query plan.protected booleansimplifyAll(CompileContext.Simplify mode, CompileContext cc) Simplifies all expressions for requests of the specified type.Methods 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, data, ddo, funcType, hasFreeVars, indexAccessible, isSimple, markTailCalls, mergeEbv, optimize, simplifyFor, typeCheck, uses, vacuous, visitAllMethods inherited from class org.basex.query.expr.ExprInfo
description, plan, toErrorString, toString
-
Field Details
-
exprs
Expressions.
-
-
Constructor Details
-
Arr
Constructor.- Parameters:
info- input infoseqType- sequence typeexprs- expressions
-
-
Method Details
-
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.- Specified by:
checkUpin classExpr- Throws:
QueryException- query exception
-
compile
Description copied from class:ExprCompiles and optimizes the expression, assigns types and cardinalities.- Specified by:
compilein classExpr- Parameters:
cc- compilation context- Returns:
- optimized expression
- Throws:
QueryException- query exception
-
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. -
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:- Specified by:
inlineablein classExpr- Parameters:
ic- inlining context- Returns:
- result of check
-
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) -
SimpleMap.optimize(org.basex.query.CompileContext) -
TypeswitchGroup.optimize(org.basex.query.CompileContext)
-
-
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:- Specified by:
inlinein classExpr- Parameters:
ic- inlining context- Returns:
- resulting expression if something has changed,
nullotherwise - Throws:
QueryException- query exception
-
inline
Inlines an expression (seeExpr.inline(InlineContext)).- Parameters:
ic- inlining contextcontext- function for context inlining; yieldsnullif no inlining is required- Returns:
- resulting expression if something changed,
nullotherwise - Throws:
QueryException- query exception
-
copyAll
Creates a deep copy of the given array.- Type Parameters:
T- element type- Parameters:
cc- compilation contextvm- variable mappingarr- array to copy- Returns:
- deep copy of the array
-
allAreValues
protected final boolean allAreValues(boolean limit) Returns true if all arguments are values (possibly of small size).- Parameters:
limit- check if result size of any expression exceedsCompileContext.MAX_PREEVAL- Returns:
- result of check
-
simplifyAll
protected boolean simplifyAll(CompileContext.Simplify mode, CompileContext cc) throws QueryException Simplifies all expressions for requests of the specified type.- Parameters:
mode- mode of simplificationcc- compilation context- Returns:
trueif at least one expression has changed- Throws:
QueryException- query exception
-
flatten
Flattens nested expressions.- Parameters:
cc- compilation context
-
mayBePositional
Checks if the specified expression may be positional.- Parameters:
expr- expression- Returns:
- result of check
-
accept
Description copied from class:ExprTraverses this expression, notifying the visitor of declared and used variables, and checking the tree for other recursive properties. -
args
Description copied from class:ExprReturns the arguments/operands of an expression (function, list, etc). -
exprSize
public int exprSize()Description copied from class:ExprCounts the number of expressions in this expression's sub-tree. This method is e.g. called byStaticFunc.inline(org.basex.query.expr.Expr[], org.basex.query.CompileContext)to check if an expression is small enough to be inlined. -
equals
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)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.
-
plan
Description copied from class:ExprInfoCreates a query plan.
-