Package org.basex.query.expr
Class IntPos
- 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.IntPos
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description IntPos
copy(CompileContext cc, IntObjMap<Var> vm)
Copies an expression.String
description()
Returns a string description of the expression.boolean
equals(Object obj)
This function is e.g.boolean
exact()
Checks if the minimum and maximum positions are identical.static Expr
get(double pos, InputInfo ii)
Returns a position expression for the specified position, or an optimized boolean item.static Expr
get(long min, long max, InputInfo ii)
Returns a position expression for the specified range, or an optimized boolean item.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
invert(CompileContext cc)
If possible, returns an optimized expression with inverted operands.Bln
item(QueryContext qc, InputInfo ii)
Evaluates the expression and returns the resulting item, orEmpty.VALUE
if the expression yields an empty sequence.Expr
mergeEbv(Expr ex, boolean or, CompileContext cc)
Tries to merge two expressions that are part of an EBV test.Expr
simplifyFor(CompileContext.Simplify mode, CompileContext cc)
Simplifies the expression.int
test(long pos, QueryContext qc)
Checks the current position.void
toString(QueryString qs)
Creates a query string.void
toXml(QueryPlan plan)
Creates a query plan.-
Methods inherited from class org.basex.query.expr.Simple
accept, checkUp, compile, count, exprSize, inlineable
-
Methods inherited from class org.basex.query.expr.ParseExpr
adoptType, atomValue, checkAllUp, checkNoEmpty, checkNoEmpty, checkNoneUp, checkNoUp, checkType, checkType, checkUp, copyType, ctxValue, data, ebv, info, iter, refineType, seqType, size, test, toArray, toArray, toAtomItem, toB64, toB64, toBin, toBin, toBoolean, toBoolean, toBytes, toBytes, toDouble, toDouble, toElem, toFloat, toFunction, toItem, toItem, toLong, toLong, toMap, toMap, toNode, toNode, toNodeOrNull, toNumber, toNumberOrNull, toQNm, toQNm, toString, toString, toStringOrNull, toToken, toToken, toTokenOrNull, toZeroToken, value
-
Methods inherited from class org.basex.query.expr.Expr
arg, args, atomItem, atomIter, ddo, funcType, hasFreeVars, indexAccessible, isSimple, markTailCalls, optimize, optimizePos, simplify, typeCheck, uses, vacuous, visitAll
-
Methods inherited from class org.basex.query.expr.ExprInfo
toErrorString, toString
-
-
-
-
Method Detail
-
get
public static Expr get(double pos, InputInfo ii)
Returns a position expression for the specified position, or an optimized boolean item.- Parameters:
pos
- positionii
- input info- Returns:
- expression
-
get
public static Expr get(long min, long max, InputInfo ii)
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
public Bln item(QueryContext qc, InputInfo ii) throws QueryException
Description copied from class:Expr
Evaluates the expression and returns the resulting item, orEmpty.VALUE
if the expression yields an empty sequence. If this method is not implemented,Expr.value(QueryContext)
must be implemented instead.- Overrides:
item
in classParseExpr
- Parameters:
qc
- query contextii
- input info (only required bySeq
instances, which have no input info)- Returns:
- item or
Empty.VALUE
- Throws:
QueryException
- query exception
-
exact
public boolean exact()
Description copied from interface:CmpPos
Checks if the minimum and maximum positions are identical.
-
test
public int test(long pos, QueryContext qc)
Description copied from interface:CmpPos
Checks the current position.- Returns
2
if the test is successful and remaining tests can be skipped - Returns
1
if the test is successful - Returns
0
otherwise
- Returns
-
inline
public Expr inline(InlineContext ic)
Description copied from class:Expr
Inlines an expression into this one, replacing all variable or context references. This function is called byInlineContext.inline(Expr)
(see invocations of these functions for further inlinings). The variable reference is replaced in: The context is replaced in:
-
copy
public IntPos copy(CompileContext cc, IntObjMap<Var> vm)
Description copied from class:Expr
Copies 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:
copy
in 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
public Expr invert(CompileContext cc) throws QueryException
Description copied from interface:CmpPos
If possible, returns an optimized expression with inverted operands.- Specified by:
invert
in interfaceCmpPos
- Parameters:
cc
- compilation context- Returns:
- inverted expression or
null
- Throws:
QueryException
- query exception
-
mergeEbv
public Expr mergeEbv(Expr ex, boolean or, CompileContext cc)
Description copied from class:Expr
-
has
public boolean has(Flag... flags)
Description copied from class:Expr
Indicates 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 returnstrue
if at least flag matches an expression.
-
simplifyFor
public Expr simplifyFor(CompileContext.Simplify mode, CompileContext cc) throws QueryException
Description copied from class:Expr
Simplifies the expression. Overwritten by many expressions; callsExpr.simplify(Simplify, CompileContext)
otherwise.- Overrides:
simplifyFor
in classExpr
- Parameters:
mode
- mode of simplificationcc
- compilation context- Returns:
- simplified or original expression
- Throws:
QueryException
- query exception- See Also:
CompileContext.Simplify
-
equals
public boolean equals(Object obj)
Description copied from class:Expr
This 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)
, in order to compare the start and end value.PathCache
, in order to find identical root values at runtime.
-
description
public String description()
Description copied from class:ExprInfo
Returns 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:
description
in classExprInfo
- Returns:
- result of check
-
toXml
public void toXml(QueryPlan plan)
Description copied from class:ExprInfo
Creates a query plan.
-
toString
public void toString(QueryString qs)
Description copied from class:ExprInfo
Creates a query string.
-
-