Package org.basex.query.expr
Class ItrPos
java.lang.Object
org.basex.query.expr.ExprInfo
org.basex.query.expr.Expr
org.basex.query.expr.ParseExpr
org.basex.query.expr.Simple
org.basex.query.expr.ItrPos
- All Implemented Interfaces:
CmpPos
Integer position range check.
- Author:
- BaseX Team 2005-21, BSD License, Christian Gruen
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptioncopy(CompileContext cc, IntObjMap<Var> vm) Copies an expression.Returns a string description of the expression.booleanThis function is e.g.booleanexact()Checks if minimum and maximum expressions are identical.static ExprReturns a position expression for the specified position, or an optimized boolean item.static ExprReturns a position expression for the specified range, or an optimized boolean item.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.invert(CompileContext cc) If possible, returns an optimized expression with inverted operands.item(QueryContext qc, InputInfo ii) Evaluates the expression and returns the resulting item, orEmpty.VALUEif the expression yields an empty sequence.mergeEbv(Expr ex, boolean or, CompileContext cc) Tries to merge two expressions that are part of an EBV test.voidCreates a query plan.voidplan(QueryString qs) Creates a query string.booleansimple()Checks if the positional range is deterministic.inttest(long pos, QueryContext qc) Checks the current position.Methods inherited from class org.basex.query.expr.Simple
accept, checkUp, compile, count, exprSize, inlineableMethods inherited from class org.basex.query.expr.ParseExpr
adoptType, atomValue, checkAllUp, checkNoEmpty, checkNoEmpty, checkNoneUp, checkNoUp, checkType, checkType, checkUp, copyType, ctxValue, ebv, 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, args, atomItem, atomIter, data, data, ddo, funcType, hasFreeVars, indexAccessible, isSimple, markTailCalls, optimize, simplifyFor, typeCheck, uses, vacuous, visitAllMethods inherited from class org.basex.query.expr.ExprInfo
toErrorString, toString
-
Method Details
-
get
Returns a position expression for the specified position, or an optimized boolean item.- Parameters:
pos- positionii- input info- Returns:
- expression
-
get
Returns a position expression for the specified range, or an optimized boolean item.- Parameters:
min- minimum positionmax- minimum position (inclusive)ii- input info- Returns:
- expression
-
item
Description copied from class:ExprEvaluates the expression and returns the resulting item, orEmpty.VALUEif the expression yields an empty sequence. If this method is not implemented,Expr.value(QueryContext)must be implemented instead.- Overrides:
itemin classParseExpr- Parameters:
qc- query contextii- input info (only required bySeqinstances, which have no input info)- Returns:
- item or
Empty.VALUE - Throws:
QueryException- query exception
-
exact
public boolean exact()Description copied from interface:CmpPosChecks if minimum and maximum expressions are identical. -
simple
public boolean simple()Description copied from interface:CmpPosChecks if the positional range is deterministic. -
test
Description copied from interface:CmpPosChecks the current position.- Returns
2if the test is successful and remaining test can be skipped - Returns
1if the test is successful - Returns
0otherwise
CmpPos.simple()check. - Returns
-
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: -
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
-
invert
Description copied from interface:CmpPosIf possible, returns an optimized expression with inverted operands.- Specified by:
invertin interfaceCmpPos- Parameters:
cc- compilation context- Returns:
- original or modified expression
- Throws:
QueryException- query exception
-
mergeEbv
Description copied from class:Expr -
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. -
equals
Description copied from class:ExprThis function is e.g. called by: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 plan. -
plan
Description copied from class:ExprInfoCreates a query string.
-