Package org.basex.query.expr
Class Otherwise
- 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.Otherwise
-
public final class Otherwise extends Arr
Otherwise expression.- Author:
- BaseX Team 2005-22, BSD License, Christian Gruen
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
checkUp()
Checks if the updating semantics are satisfied.Expr
compile(CompileContext cc)
Compiles and optimizes the expression, assigns types and cardinalities.Expr
copy(CompileContext cc, IntObjMap<Var> vm)
Copies an expression.boolean
equals(Object obj)
This function is e.g.Iter
iter(QueryContext qc)
Evaluates the expression and returns an iterator on the resulting items.Expr
optimize(CompileContext cc)
Optimizes an already compiled expression without recompiling its sub-expressions.void
toString(QueryString qs)
Creates a query string.boolean
vacuous()
Tests if this is a vacuous expression (empty sequence or error function).Value
value(QueryContext qc)
Evaluates the expression and returns the resulting value.-
Methods inherited from class org.basex.query.expr.Arr
accept, allAreValues, args, copyAll, count, exprSize, flatten, has, inline, inlineable, mayBePositional, removeEmpty, simplifyAll, toXml
-
Methods inherited from class org.basex.query.expr.ParseExpr
adoptType, atomValue, checkAllUp, checkNoEmpty, checkNoEmpty, checkNoneUp, checkNoUp, checkType, checkType, checkUp, copyType, ctxValue, data, ebv, info, item, 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
-
Methods inherited from class org.basex.query.expr.Expr
arg, atomItem, atomIter, ddo, funcType, hasFreeVars, indexAccessible, isSimple, markTailCalls, mergeEbv, optimizePos, simplify, simplifyFor, typeCheck, uses, visitAll
-
Methods inherited from class org.basex.query.expr.ExprInfo
description, toErrorString, toString
-
-
-
-
Method Detail
-
iter
public Iter iter(QueryContext qc) throws QueryException
Description copied from class:Expr
Evaluates the expression and returns an iterator on the resulting items. The implementation of this method is optional.- Overrides:
iter
in classParseExpr
- Parameters:
qc
- query context- Returns:
- iterator
- Throws:
QueryException
- query exception
-
value
public Value value(QueryContext qc) throws QueryException
Description copied from class:Expr
Evaluates the expression and returns the resulting value. If this method is not implemented,Expr.item(QueryContext, InputInfo)
must be implemented instead.- Overrides:
value
in classParseExpr
- Parameters:
qc
- query context- Returns:
- value
- Throws:
QueryException
- query exception
-
compile
public Expr compile(CompileContext cc) throws QueryException
Description copied from class:Expr
Compiles and optimizes the expression, assigns types and cardinalities.- Overrides:
compile
in classArr
- Parameters:
cc
- compilation context- Returns:
- optimized expression
- Throws:
QueryException
- query exception
-
optimize
public Expr optimize(CompileContext cc) throws QueryException
Description copied from class:Expr
Optimizes an already compiled expression without recompiling its sub-expressions.- Overrides:
optimize
in classExpr
- Parameters:
cc
- compilation context- Returns:
- optimized expression
- Throws:
QueryException
- query exception
-
checkUp
public void checkUp() throws QueryException
Description copied from class:Expr
Checks if the updating semantics are satisfied. This function is only called if any updating expression was found in the query.- Overrides:
checkUp
in classArr
- Throws:
QueryException
- query exception
-
vacuous
public boolean vacuous()
Description copied from class:Expr
Tests if this is a vacuous expression (empty sequence or error function). This check is needed for updating queries.
-
equals
public boolean equals(Object obj)
Description copied from class:Arr
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)
, in order to compare the start and end value.PathCache
, in order to find identical root values at runtime.
-
copy
public Expr 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
-
toString
public void toString(QueryString qs)
Description copied from class:ExprInfo
Creates a query string.
-
-