Package org.basex.query.expr.path
Class Step
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.Preds
org.basex.query.expr.path.Step
- Direct Known Subclasses:
CachedStep,IterPosStep,IterStep
Abstract axis step expression.
- Author:
- BaseX Team 2005-21, BSD License, Christian Gruen
-
Field Summary
Fields -
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.abstract Stepcopy(CompileContext cc, IntObjMap<Var> vm) Copies an expression.booleanThis function is e.g.intexprSize()Counts the number of expressions in this expression's sub-tree.static Exprget(CompileContext cc, Expr root, InputInfo ii, Expr... preds) Returns a new optimized self::node() step.static ExprReturns a new optimized step.static ExprReturns a new optimized self step.static StepReturns a new step.final Exprinline(InlineContext ic) Inlines an expression into this one, replacing all variable or context references.final ExprOptimizes an already compiled expression without recompiling its sub-expressions.final voidCreates a query plan.voidplan(QueryString qs) Creates a query string.protected final voidAssigns the expression type.final Valuevalue(QueryContext qc) Evaluates the expression and returns the resulting value.Methods inherited from class org.basex.query.expr.Preds
compile, flattenEbv, inlineable, match, mayBePositional, numeric, simplifyMethods inherited from class org.basex.query.expr.Arr
allAreValues, args, checkUp, copyAll, count, flatten, has, inline, 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, markTailCalls, mergeEbv, simplifyFor, typeCheck, uses, vacuous, visitAllMethods inherited from class org.basex.query.expr.ExprInfo
description, toErrorString, toString
-
Field Details
-
test
Kind test. -
axis
Axis.
-
-
Method Details
-
get
public static Expr get(CompileContext cc, Expr root, InputInfo ii, Expr... preds) throws QueryException Returns a new optimized self::node() step.- Parameters:
cc- compilation contextroot- root expression; ifnull, the current context will be usedii- input infopreds- predicates- Returns:
- step
- Throws:
QueryException- query exception
-
get
public static Expr get(CompileContext cc, Expr root, InputInfo ii, Test test, Expr... preds) throws QueryException Returns a new optimized self step.- Parameters:
cc- compilation contextroot- root expression; ifnull, the current context will be usedii- input infotest- testpreds- predicates- Returns:
- step
- Throws:
QueryException- query exception
-
get
public static Expr get(CompileContext cc, Expr root, InputInfo ii, Axis axis, Test test, Expr... preds) throws QueryException Returns a new optimized step.- Parameters:
cc- compilation contextroot- root expression; ifnull, the current context will be usedii- input infoaxis- axistest- node testpreds- predicates- Returns:
- step
- Throws:
QueryException- query exception
-
get
Returns a new step.- Parameters:
ii- input infoaxis- axistest- node testpreds- predicates- Returns:
- step
-
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
-
type
Description copied from class:PredsAssigns the expression type. -
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
-
value
Description copied from class:ExprEvaluates the expression and returns the resulting value. If this method is not implemented,Expr.item(QueryContext, InputInfo)must be implemented instead.- Overrides:
valuein classParseExpr- Parameters:
qc- query context- Returns:
- value
- Throws:
QueryException- query exception
-
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
-
accept
Description copied from class:ExprTraverses this expression, notifying the visitor of declared and used variables, and checking the tree for other recursive properties. -
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
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.
-
plan
Description copied from class:ExprInfoCreates a query plan. -
plan
Description copied from class:ExprInfoCreates a query string.
-