org.basex.query.expr
Class Catch

java.lang.Object
  extended by org.basex.data.ExprInfo
      extended by org.basex.query.expr.Expr
          extended by org.basex.query.expr.ParseExpr
              extended by org.basex.query.expr.Single
                  extended by org.basex.query.expr.Catch

public final class Catch
extends Single

Catch clause.

Author:
BaseX Team 2005-12, BSD License, Christian Gruen

Nested Class Summary
 
Nested classes/interfaces inherited from class org.basex.query.expr.Expr
Expr.Flag
 
Field Summary
static QNm[] NAMES
          Error QNames.
static SeqType[] TYPES
          Error types.
static byte[] WILDCARD
          Prefix wildcard.
 
Fields inherited from class org.basex.query.expr.Single
expr
 
Fields inherited from class org.basex.query.expr.ParseExpr
info, size, type
 
Constructor Summary
Catch(InputInfo ii, NameTest[] c, QueryContext ctx, VarScope scp)
          Constructor.
 
Method Summary
 boolean accept(ASTVisitor visitor)
          Traverses this expression, notifying the visitor of declared and used variables, and checking the tree for other recursive properties.
protected  Expr asExpr(QueryException ex, QueryContext ctx, VarScope scp)
          Returns this clause as an inlineable expression.
 Catch compile(QueryContext ctx, VarScope scp)
          Compiles and optimizes the expression, assigns data types and cardinalities.
 Expr copy(QueryContext ctx, VarScope scp, IntObjMap<Var> vs)
          Copies an expression.
 int exprSize()
          Counts the number of expressions in this expression's sub-tree.
 Catch inline(QueryContext ctx, VarScope scp, Var v, Expr e)
          Inlines an expression into this one, replacing all references to the given variable.
protected  boolean matches(QueryException qe)
          Checks if one of the specified errors match the thrown error.
 java.lang.String toString()
           
static Value[] values(QueryException ex)
          Returns all error values.
 Var[] vars()
          Returns the variables used in the catch expression.
 
Methods inherited from class org.basex.query.expr.Single
checkUp, count, has, plan, removable
 
Methods inherited from class org.basex.query.expr.ParseExpr
checkAdmin, checkAllUp, checkBinary, checkBln, checkColl, checkCreate, checkCtx, checkDbl, checkDBNode, checkEStr, checkEStr, checkFunc, checkItem, checkItr, checkItr, checkMap, checkNode, checkNode, checkNode, checkNoEmpty, checkNoneUp, checkNoUp, checkQNm, checkStr, checkStr, checkStrBin, checkType, checkWrite, compBln, copyType, ebv, item, iter, optPre, preEval, size, test, type, value
 
Methods inherited from class org.basex.query.expr.Expr
addText, compEbv, copy, hasFreeVars, indexAccessible, indexEquivalent, inlineAll, isEmpty, isFunction, isItem, isVacuous, isValue, iterable, markTailCalls, optimize, sameAs, uses, visitAll
 
Methods inherited from class org.basex.data.ExprInfo
addPlan, addPlan, description, info, planAttr, planElem
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

WILDCARD

public static final byte[] WILDCARD
Prefix wildcard.


NAMES

public static final QNm[] NAMES
Error QNames.


TYPES

public static final SeqType[] TYPES
Error types.

Constructor Detail

Catch

public Catch(InputInfo ii,
             NameTest[] c,
             QueryContext ctx,
             VarScope scp)
Constructor.

Parameters:
ii - input info
c - supported error codes
ctx - query context
scp - variable scope
Method Detail

compile

public Catch compile(QueryContext ctx,
                     VarScope scp)
              throws QueryException
Description copied from class: Expr
Compiles and optimizes the expression, assigns data types and cardinalities.

Overrides:
compile in class Single
Parameters:
ctx - query context
scp - variable scope
Returns:
optimized expression
Throws:
QueryException - query exception

copy

public Expr copy(QueryContext ctx,
                 VarScope scp,
                 IntObjMap<Var> vs)
Description copied from class: Expr
Copies an expression. Will be useful for inlining functions, or for copying static queries.

Specified by:
copy in class Expr
Parameters:
ctx - query context
scp - variable scope for creating new variables
vs - mapping from old variable IDs to new variable copies
Returns:
copied expression

inline

public Catch inline(QueryContext ctx,
                    VarScope scp,
                    Var v,
                    Expr e)
             throws QueryException
Description copied from class: Expr
Inlines an expression into this one, replacing all references to the given variable.

Overrides:
inline in class Single
Parameters:
ctx - query context for recompilation
scp - variable scope for recompilation
v - variable to replace
e - expression to inline
Returns:
resulting expression in something changed, null otherwise
Throws:
QueryException - query exception

asExpr

protected Expr asExpr(QueryException ex,
                      QueryContext ctx,
                      VarScope scp)
               throws QueryException
Returns this clause as an inlineable expression.

Parameters:
ex - caught exception
ctx - query context
scp - variable scope
Returns:
equivalent expression
Throws:
QueryException - query exception during inlining

values

public static Value[] values(QueryException ex)
Returns all error values.

Parameters:
ex - exception
Returns:
values

vars

public Var[] vars()
Returns the variables used in the catch expression.

Returns:
variables

matches

protected boolean matches(QueryException qe)
Checks if one of the specified errors match the thrown error.

Parameters:
qe - thrown error
Returns:
result of check

toString

public java.lang.String toString()
Specified by:
toString in class ExprInfo

accept

public boolean accept(ASTVisitor visitor)
Description copied from class: Expr
Traverses this expression, notifying the visitor of declared and used variables, and checking the tree for other recursive properties.

Overrides:
accept in class Single
Parameters:
visitor - visitor
Returns:
if the walk should be continued

exprSize

public int exprSize()
Description copied from class: Expr
Counts the number of expressions in this expression's sub-tree.

Overrides:
exprSize in class Single
Returns:
number of expressions