public final class ContextValue extends Simple
Constructor and Description |
---|
ContextValue(InputInfo info)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
boolean |
accept(ASTVisitor visitor)
Traverses this expression, notifying the visitor of declared and used variables,
and checking the tree for other recursive properties.
|
Expr |
copy(CompileContext cc,
IntObjMap<Var> vm)
Copies an expression.
|
VarUsage |
count(Var var)
Checks how often a variable or context reference is used in this expression.
|
Data |
data()
Returns the data reference bound to this expression.
|
void |
data(Data dt)
Assigns a data reference, if supported.
|
boolean |
equals(Object obj)
This function is e.g.
|
static Expr |
get(CompileContext cc,
InputInfo ii)
Creates a new, optimized context value expression.
|
boolean |
has(Flag... flags)
Indicates if an expression has one of the specified compiler properties.
|
Expr |
inline(InlineContext ic)
Inlines an expression into this one, replacing all variable or context references.
|
Expr |
optimize(CompileContext cc)
Optimizes an already compiled expression without recompiling its sub-expressions.
|
void |
plan(QueryString qs)
Creates a query string.
|
Value |
value(QueryContext qc)
Evaluates the expression and returns the resulting value.
|
checkUp, compile, exprSize, inlineable, plan
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
arg, args, atomItem, atomIter, ddo, funcType, hasFreeVars, indexAccessible, isSimple, markTailCalls, mergeEbv, simplifyFor, typeCheck, uses, vacuous, visitAll
description, toErrorString, toString
public ContextValue(InputInfo info)
info
- input infopublic static Expr get(CompileContext cc, InputInfo ii)
cc
- compilation contextii
- input infopublic Expr optimize(CompileContext cc)
Expr
public Value value(QueryContext qc) throws QueryException
Expr
Expr.item(QueryContext, InputInfo)
must be implemented
instead.value
in class ParseExpr
qc
- query contextQueryException
- query exceptionpublic boolean has(Flag... flags)
Expr
true
if at least flag matches an expression.public VarUsage count(Var var)
Expr
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)
public Expr inline(InlineContext ic) throws QueryException
Expr
InlineContext.inline(Expr)
(see invocations of this
functions for further inlinings).
The variable reference is replaced in:
The context is replaced in:
inline
in class Expr
ic
- inlining contextnull
otherwiseQueryException
- query exceptionpublic void data(Data dt)
Expr
public Expr copy(CompileContext cc, IntObjMap<Var> vm)
Expr
VarRef.inline(org.basex.query.InlineContext)
, FuncItem.inline(org.basex.query.expr.Expr[], org.basex.query.CompileContext)
,
Closure.inline(org.basex.query.InlineContext)
and StaticFunc.inline(org.basex.query.expr.Expr[], org.basex.query.CompileContext)
.copy
in class Expr
cc
- compilation contextvm
- mapping from old variable IDs to new variable copies.
Required by Closure.copy(org.basex.query.CompileContext, org.basex.util.hash.IntObjMap<org.basex.query.var.Var>)
and VarRef.copy(org.basex.query.CompileContext, org.basex.util.hash.IntObjMap<org.basex.query.var.Var>)
public boolean accept(ASTVisitor visitor)
Expr
public boolean equals(Object obj)
Expr
If.optimize(CompileContext)
, Switch.optimize(CompileContext)
,
Typeswitch.optimize(CompileContext)
, in order to discard identical expressions.
CmpR.mergeEbv(Expr, boolean, CompileContext)
or
CmpSR.mergeEbv(Expr, boolean, CompileContext)
,
in order to merge expressions with identical input.
CmpG.optimize(CompileContext)
or CmpV.optimize(CompileContext)
,
in order to pre-evaluate equality tests.
CmpG.optimize(CompileContext)
or
Pos.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.
public void plan(QueryString qs)
ExprInfo
Copyright © 2005–2023 BaseX Team. All rights reserved.