Package org.basex.query.expr
Class TypeCheck
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.TypeCheck
- Direct Known Subclasses:
Treat
Checks the argument expression's result type.
- Author:
- BaseX Team 2005-21, BSD License, Leo Woerteler
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionTypeCheck(StaticContext sc, InputInfo info, Expr expr, SeqType seqType, boolean promote) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionfinal Exprcheck(Expr ex, CompileContext cc) Creates an expression that checks the given expression's return type.final ExprCompiles and optimizes the expression, assigns types and cardinalities.final Exprcopy(CompileContext cc, IntObjMap<Var> vm) Copies an expression.final Datadata()Returns the data reference bound to this expression.final booleanThis function is e.g.error()Returns the used error code.final booleanisRedundant(Var var) Checks if this type check is redundant if the result is bound to the given variable.final Iteriter(QueryContext qc) Evaluates the expression and returns an iterator on the resulting items.final ExprOptimizes an already compiled expression without recompiling its sub-expressions.final voidCreates a query plan.final voidplan(QueryString qs) Creates a query string.final ExprsimplifyFor(CompileContext.Simplify mode, CompileContext cc) This function is called at compile time for expressions whose operands might be simplified.final Valuevalue(QueryContext qc) Evaluates the expression and returns the resulting value.Methods inherited from class org.basex.query.expr.Single
accept, checkUp, count, exprSize, has, inline, inlineableMethods inherited from class org.basex.query.expr.ParseExpr
adoptType, atomValue, checkAllUp, checkNoEmpty, checkNoEmpty, checkNoneUp, checkNoUp, checkType, checkType, checkUp, copyType, ctxValue, ebv, item, 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, markTailCalls, mergeEbv, typeCheck, uses, vacuous, visitAllMethods inherited from class org.basex.query.expr.ExprInfo
description, toErrorString, toString
-
Field Details
-
promote
public final boolean promoteFlag for function conversion.
-
-
Constructor Details
-
TypeCheck
Constructor.- Parameters:
sc- static contextinfo- input infoexpr- expression to be promotedseqType- type to promote topromote- flag for function promotion
-
-
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
-
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
-
simplifyFor
public final Expr simplifyFor(CompileContext.Simplify mode, CompileContext cc) throws QueryException Description copied from class:ExprThis function is called at compile time for expressions whose operands might be simplified.- Overrides:
simplifyForin classExpr- Parameters:
mode- mode of simplificationcc- compilation context- Returns:
- simplified or original expression
- Throws:
QueryException- query exception- See Also:
-
isRedundant
Checks if this type check is redundant if the result is bound to the given variable.- Parameters:
var- variable- Returns:
- result of check
-
check
Creates an expression that checks the given expression's return type.- Parameters:
ex- expression to checkcc- compilation context- Returns:
- the resulting expression, or
nullif no type check is necessary - Throws:
QueryException- query exception
-
error
Returns the used error code.- Returns:
- error code
-
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
-
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.
-