org.extendj.ast
node type CatchParameterDeclaration

General Info

Production
CatchParameterDeclaration : ASTNode ::= Modifiers TypeAccess:Access* <ID:String>;
Type Hierarchy:
java.lang.Object
  extended by beaver.Symbol
      extended by org.extendj.ast.ASTNode<ASTNode>
          extended by org.extendj.ast.CatchParameterDeclaration
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Iterable<ASTNode>, java.util.Iterator, org.jastadd.util.PrettyPrintable
static class SimpleSet.SimpleSetImpl
           

Description

A catch parameter with disjunct exception type.
Source
Declared in /home/jesper/git/extendj/java7/grammar/MultiCatch.ast at line 19

Member Filters

API level:

Aspect:

Constructors

public CatchParameterDeclaration()
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 1
public CatchParameterDeclaration(Modifiers p0,
                                 List<Access> p1,
                                 java.lang.String p2)
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 14
public CatchParameterDeclaration(Modifiers p0,
                                 List<Access> p1,
                                 beaver.Symbol p2)
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 19

Attributes

Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 39
Aspect
MultiCatch
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 42
Aspect
MultiCatch
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 43
Aspect
MultiCatch
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 47
Aspect
MultiCatch
The catch parameter of a multi-catch clause is implicitly final.
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 56
Aspect
MultiCatch
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 57
Aspect
MultiCatch
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 58
Aspect
MultiCatch
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 59
Aspect
MultiCatch
@ASTNodeAnnotation.Attribute
syn java.lang.String name()
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 61
Aspect
MultiCatch
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 63
Aspect
MultiCatch
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 64
Aspect
MultiCatch
@ASTNodeAnnotation.Attribute
syn org.extendj.ast.Constant constant()
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 67
Aspect
MultiCatch
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 72
Aspect
MultiCatch
@ASTNodeAnnotation.Attribute
syn org.extendj.ast.Variable sourceVariableDecl()
Source
Declared in /home/jesper/git/extendj/java5/frontend/Generics.jrag at line 1637
Aspect
SourceDeclarations
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 83
Aspect
MultiCatch
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 84
Aspect
MultiCatch
@ASTNodeAnnotation.Attribute
syn boolean contains(java.lang.Object o)
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 88
Aspect
MultiCatch
A catch parameter declared with a disjunction type has the effective type lub(t1, t2, ...)
See Also:
"JLSv3 §15.12.2.7"
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 175
Aspect
MultiCatch
@ASTNodeAnnotation.Attribute
syn java.util.Collection<TypeDecl> throwTypes()
Source
Declared in /home/jesper/git/extendj/java7/frontend/PreciseRethrow.jrag at line 62
Aspect
PreciseRethrow
Source
Declared in /home/jesper/git/extendj/java8/frontend/EffectivelyFinal.jrag at line 143
Aspect
EffectivelyFinal
@ASTNodeAnnotation.Attribute
inh org.extendj.ast.SimpleSet lookupVariable(java.lang.String name)
Inherit the lookupVariable attribute.
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 36
Aspect
MultiCatch
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 44
Aspect
MultiCatch
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 45
Aspect
MultiCatch
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 46
Aspect
MultiCatch
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 71
Aspect
MultiCatch
@ASTNodeAnnotation.Attribute
inh LUBType lookupLUBType(java.util.Collection bounds)
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 167
Aspect
MultiCatch
@ASTNodeAnnotation.Attribute
inh org.extendj.ast.VariableScope outerScope()
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 182
Aspect
MultiCatch
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 183
Aspect
MultiCatch
Source
Declared in /home/jesper/git/extendj/java7/frontend/PreciseRethrow.jrag at line 213
Aspect
PreciseRethrow
Local number used to store the exception parameter.
Source
Declared in /home/jesper/git/extendj/java7/backend/MultiCatch.jrag at line 64
Aspect
MultiCatch

Methods

public org.extendj.ast.SimpleSet add(java.lang.Object o)
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 85
Aspect
MultiCatch
public boolean isSingleton()
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 89
Aspect
MultiCatch
public boolean isSingleton(java.lang.Object o)
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 90
Aspect
MultiCatch
public java.util.Iterator iterator()
Specified by:iterator in interface java.lang.Iterable<ASTNode>Overrides:iterator in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 94
Aspect
MultiCatch
public boolean hasNext()
Specified by:hasNext in interface java.util.Iterator
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 95
Aspect
MultiCatch
public java.lang.Object next()
Specified by:next in interface java.util.Iterator
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 96
Aspect
MultiCatch
public void remove()
Specified by:remove in interface java.util.Iterator
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 97
Aspect
MultiCatch
public void typeCheck()
Type checking. The types given in a disjunction type may not be subtypes of each other.
Overrides:typeCheck in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 131
Aspect
MultiCatch
public void prettyPrint(org.jastadd.util.PrettyPrinter out)
Specified by:prettyPrint in interface org.jastadd.util.PrettyPrintableOverrides:prettyPrint in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java7/frontend/PrettyPrint.jadd at line 39
Aspect
Java7PrettyPrint
public void init$Children()
Initializes the child array to the correct size. Initializes List and Opt nta children.
Overrides:init$Children in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 10
protected int numChildren()
Overrides:numChildren in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 27
public boolean mayHaveRewrite()
Overrides:mayHaveRewrite in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 33
public void flushAttrCache()
Overrides:flushAttrCache in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 39
public void flushCollectionCache()
Overrides:flushCollectionCache in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 49
public void flushRewriteCache()
Overrides:flushRewriteCache in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 55
public CatchParameterDeclaration clone()
                                throws java.lang.CloneNotSupportedException
Overrides:clone in class ASTNode<ASTNode>
Throws:
java.lang.CloneNotSupportedException
Source
Declared in /home/jesper/git/extendj/ASTNode at line 61
Overrides:copy in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 68
@Deprecated
public CatchParameterDeclaration fullCopy()
Deprecated. Please use treeCopy or treeCopyNoTransform instead

Create a deep copy of the AST subtree at this node. The copy is dangling, i.e. has no parent.

Overrides:fullCopy in class ASTNode<ASTNode>
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 87
public CatchParameterDeclaration treeCopyNoTransform()
Create a deep copy of the AST subtree at this node. The copy is dangling, i.e. has no parent.
Overrides:treeCopyNoTransform in class ASTNode<ASTNode>
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 97
public CatchParameterDeclaration treeCopy()
Create a deep copy of the AST subtree at this node. The subtree of this node is traversed to trigger rewrites before copy. The copy is dangling, i.e. has no parent.
Overrides:treeCopy in class ASTNode<ASTNode>
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 117
protected boolean is$Equal(ASTNode node)
Overrides:is$Equal in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 124
public void setModifiers(Modifiers node)
Replaces the Modifiers child.
Parameters:
node - The new node to replace the Modifiers child.
Retrieves the Modifiers child.
Returns:
The current node used as the Modifiers child.
Retrieves the Modifiers child.

This method does not invoke AST transformations.

Returns:
The current node used as the Modifiers child.
public void setTypeAccessList(List<Access> list)
Replaces the TypeAccess list.
Parameters:
list - The new list node to be used as the TypeAccess list.
public int getNumTypeAccess()
Retrieves the number of children in the TypeAccess list.
Returns:
Number of children in the TypeAccess list.
Retrieves the number of children in the TypeAccess list. Calling this method will not trigger rewrites.
Returns:
Number of children in the TypeAccess list.
public Access getTypeAccess(int i)
Retrieves the element at index i in the TypeAccess list.
Parameters:
i - Index of the element to return.
Returns:
The element at position i in the TypeAccess list.
public boolean hasTypeAccess()
Check whether the TypeAccess list has any children.
Returns:
true if it has at least one child, false otherwise.
public void addTypeAccess(Access node)
Append an element to the TypeAccess list.
Parameters:
node - The element to append to the TypeAccess list.
public void addTypeAccessNoTransform(Access node)
public void setTypeAccess(Access node,
                          int i)
Replaces the TypeAccess list element at index i with the new node node.
Parameters:
node - The new node to replace the old list element.
i - The list index of the node to be replaced.
Retrieves the TypeAccess list.
Returns:
The node representing the TypeAccess list.
Retrieves the TypeAccess list.

This method does not invoke AST transformations.

Returns:
The node representing the TypeAccess list.
Retrieves the TypeAccess list.
Returns:
The node representing the TypeAccess list.
Retrieves the TypeAccess list.

This method does not invoke AST transformations.

Returns:
The node representing the TypeAccess list.
public void setID(java.lang.String value)
Replaces the lexeme ID.
Parameters:
value - The new value for the lexeme ID.
public void setID(beaver.Symbol symbol)
JastAdd-internal setter for lexeme ID using the Beaver parser.
Parameters:
symbol - Symbol containing the new value for the lexeme ID
@ASTNodeAnnotation.Token(name="ID")
public java.lang.String getID()
Retrieves the value for the lexeme ID.
Returns:
The value for the lexeme ID.
public void nameCheck()
Overrides:nameCheck in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/NameCheck.jrag at line 71
Aspect
Java8NameCheck
public org.extendj.ast.NameType Define_nameType(ASTNode caller,
                                                ASTNode child)
Overrides:Define_nameType in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/SyntacticClassification.jrag at line 36
protected boolean canDefine_nameType(ASTNode caller,
                                     ASTNode child)
Overrides:rewriteTo in class ASTNode<ASTNode>
public java.lang.String name()
public TypeDecl type()
public java.util.Collection<TypeDecl> throwTypes()
public boolean isParameter()
public boolean isClassVariable()
public boolean isInstanceVariable()
public boolean isMethodParameter()
public boolean isConstructorParameter()
public boolean isLocalVariable()
public boolean isFinal()
public boolean isVolatile()
public boolean isEffectivelyFinal()
public boolean isBlank()
public boolean isStatic()
public boolean isSynthetic()
public Expr getInit()
public boolean hasInit()
public org.extendj.ast.Constant constant()
public int size()
public boolean isEmpty()
public boolean contains(java.lang.Object o)

Fields

protected java.lang.String tokenString_ID
public int IDstart
public int IDend
protected boolean sourceVariableDecl_computed
protected org.extendj.ast.Variable sourceVariableDecl_value
protected boolean throwTypes_computed
protected java.util.Collection<TypeDecl> throwTypes_value
protected boolean isEffectivelyFinal_computed
protected boolean isEffectivelyFinal_value
protected boolean localNum_computed
protected int localNum_value
public static final org.extendj.ast.SimpleSet emptySet
public static final org.extendj.ast.SimpleSet fullSet

Inherited Members

Attributes inherited from org.extendj.ast.ASTNode

Methods inherited from class org.extendj.ast.ASTNode

Methods inherited from class beaver.Symbol

getColumn
getEnd
getId
getLine
getStart
makePosition

Methods inherited from class java.lang.Object

equals
finalize
getClass
hashCode
notify
notifyAll
wait
wait
wait

Fields inherited from org.extendj.ast.ASTNode

Fields inherited from beaver.Symbol

end
id
start
value