Package org.basex.query.expr
Class TypeswitchGroup
java.lang.Object
org.basex.query.expr.ExprInfo
org.basex.query.expr.Expr
org.basex.query.expr.ParseExpr
org.basex.query.expr.Single
org.basex.query.expr.TypeswitchGroup
Group of type switch cases.
- Author:
- BaseX Team 2005-21, BSD License, Christian Gruen
-
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionTypeswitchGroup(InputInfo info, Var var, SeqType[] seqTypes, Expr rtrn) Constructor. -
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.Compiles and optimizes the expression, assigns types and cardinalities.copy(CompileContext cc, IntObjMap<Var> vm) Copies an expression.data()Returns the data reference bound to this expression.booleanThis function is e.g.intexprSize()Counts the number of expressions in this expression's sub-tree.inline(InlineContext ic) Inlines an expression into this one, replacing all variable or context references.item(QueryContext qc, InputInfo ii) Evaluates the expression and returns the resulting item, orEmpty.VALUEif the expression yields an empty sequence.iter(QueryContext qc) Evaluates the expression and returns an iterator on the resulting items.voidFinds and marks tail calls, enabling TCO.Optimizes an already compiled expression without recompiling its sub-expressions.voidCreates a query plan.voidplan(QueryString qs) Creates a query string.booleansimplify(CompileContext.Simplify mode, CompileContext cc) Simplifies all expressions for requests of the specified type.typeCheck(TypeCheck tc, CompileContext cc) Tries to push the given type check inside this expression.value(QueryContext qc) Evaluates the expression and returns the resulting value.Methods inherited from class org.basex.query.expr.Single
checkUp, count, has, inlineableMethods inherited from class org.basex.query.expr.ParseExpr
adoptType, atomValue, checkAllUp, checkNoEmpty, checkNoEmpty, checkNoneUp, checkNoUp, checkType, checkType, checkUp, copyType, ctxValue, ebv, 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, args, atomItem, atomIter, data, ddo, funcType, hasFreeVars, indexAccessible, isSimple, mergeEbv, simplifyFor, uses, vacuous, visitAllMethods inherited from class org.basex.query.expr.ExprInfo
description, toErrorString, toString
-
Constructor Details
-
TypeswitchGroup
Constructor.- Parameters:
info- input infovar- variable (can benull)seqTypes- sequence types this case matches, the empty array meansdefaultrtrn- return expression
-
-
Method Details
-
compile
Description copied from class:ExprCompiles and optimizes the expression, assigns types and cardinalities.- Overrides:
compilein classSingle- Parameters:
cc- compilation context- Returns:
- optimized expression
- Throws:
QueryException- query exception
-
optimize
Description copied from class:ExprOptimizes an already compiled expression without recompiling its sub-expressions.- Overrides:
optimizein classSingle- Parameters:
cc- compilation context- Returns:
- optimized expression
- Throws:
QueryException- query exception
-
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: -
typeCheck
Description copied from class:ExprTries to push the given type check inside this expression.- Overrides:
typeCheckin classExpr- Parameters:
tc- type check to push into the expressioncc- compilation context- Returns:
- the resulting expression if successful,
nullotherwise - 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
-
iter
Description copied from class:ExprEvaluates the expression and returns an iterator on the resulting items. The implementation of this method is optional.- Overrides:
iterin classParseExpr- Parameters:
qc- query context- Returns:
- iterator
- 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
-
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
-
markTailCalls
Description copied from class:ExprFinds and marks tail calls, enabling TCO.- Overrides:
markTailCallsin classExpr- Parameters:
cc- compilation context,nullif the changes should not be reported
-
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. -
simplify
Simplifies all expressions for requests of the specified type.- Parameters:
mode- mode of simplificationcc- compilation context- Returns:
trueif expression has changed- Throws:
QueryException- query exception
-
data
Description copied from class:Expr -
equals
Description copied from class:SingleThis 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.
-