AST
node type EnumDecl

General Info

Production
EnumDecl : ClassDecl ::= Modifiers <ID:String> [SuperClassAccess:Access] Implements:Access* BodyDecl*;
Type Hierarchy:
java.lang.Object
  extended by beaver.Symbol
      extended by AST.ASTNode<ASTNode>
          extended by AST.TypeDecl
              extended by AST.ReferenceType
                  extended by AST.ClassDecl
                      extended by AST.EnumDecl
All Implemented Interfaces:
SimpleSet, VariableScope, java.lang.Cloneable, java.lang.Iterable<ASTNode>, java.util.Iterator

Nested classes/interfaces inherited from interface AST.SimpleSet

Description

Source
Declared in Java1.5Frontend/Enums.ast at line 1

Member Filters

API level:

Aspect:

Constructors

public EnumDecl()
 
public EnumDecl(Modifiers p0,
                java.lang.String p1,
                List<Access> p2,
                List<BodyDecl> p3)
 
public EnumDecl(Modifiers p0,
                beaver.Symbol p1,
                List<Access> p2,
                List<BodyDecl> p3)
 

Attributes

syn boolean isFinal()
Overrides:isFinal in class TypeDecl
Source
Declared in Java1.4Frontend/Modifiers.jrag at line 209
Aspect
Modifiers
syn java.util.ArrayList enumConstants()
Source
Declared in Java1.5Frontend/Enums.jrag at line 294
Aspect
Enums
syn boolean isAbstract()
Overrides:isAbstract in class TypeDecl
Source
Declared in Java1.4Frontend/Modifiers.jrag at line 204
Aspect
Modifiers
syn java.util.Collection unimplementedMethods()
From the Java Language Specification, third edition, section 8.9 Enums: It is a compile-time error for an enum type E to have an abstract method m as a member unless E has one or more enum constants, and all of E's enum constants have class bodies that provide concrete implementations of m.
Overrides:unimplementedMethods in class ClassDecl
Source
Declared in Java1.5Frontend/Enums.jrag at line 623
Aspect
Enums
syn int flags()
Overrides:flags in class TypeDecl
Source
Declared in Java1.5Backend/EnumsCodegen.jrag at line 13
Aspect
EnumsCodegen
Source
Declared in Java1.5Frontend/Enums.jrag at line 421
Aspect
Enums

Methods

public void flushCache()
Overrides:flushCache in class ClassDecl
public void flushCollectionCache()
Overrides:flushCollectionCache in class ClassDecl
public EnumDecl clone()
               throws java.lang.CloneNotSupportedException
Overrides:clone in class ClassDecl
Throws:
java.lang.CloneNotSupportedException
public EnumDecl copy()
Overrides:copy in class ClassDecl
Create a deep copy of the AST subtree at this node. The copy is dangling, i.e. has no parent.
Overrides:fullCopy in class ClassDecl
Returns:
dangling copy of the subtree at this node
public void typeCheck()
Overrides:typeCheck in class TypeDecl
Source
Declared in Java1.5Frontend/Enums.jrag at line 46
Aspect
Enums
protected void checkEnum(EnumDecl enumDecl)
Overrides:checkEnum in class ASTNode<ASTNode>
Source
Declared in Java1.5Frontend/Enums.jrag at line 448
Aspect
Enums
public void toString(java.lang.StringBuffer s)
Overrides:toString in class ClassDecl
Source
Declared in Java1.5Frontend/Enums.jrag at line 527
Aspect
Enums
public void checkModifiers()
Check that the enum does not contain unimplemented abstract methods.
Overrides:checkModifiers in class ClassDecl
Source
Declared in Java1.5Frontend/Enums.jrag at line 675
Aspect
Enums
public void init$Children()
Initializes the child array to the correct size. Initializes List and Opt nta children.
Overrides:init$Children in class ClassDecl
protected int numChildren()
Overrides:numChildren in class ClassDecl
public boolean mayHaveRewrite()
Overrides:mayHaveRewrite in class ClassDecl
public void setModifiers(Modifiers node)
Replaces the Modifiers child.
Overrides:setModifiers in class ClassDecl
Parameters:
node - The new node to replace the Modifiers child.
Retrieves the Modifiers child.
Overrides:getModifiers in class ClassDecl
Returns:
The current node used as the Modifiers child.
Retrieves the Modifiers child.

This method does not invoke AST transformations.

Overrides:getModifiersNoTransform in class ClassDecl
Returns:
The current node used as the Modifiers child.
public void setID(java.lang.String value)
Replaces the lexeme ID.
Overrides:setID in class ClassDecl
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.
Overrides:setID in class ClassDecl
public java.lang.String getID()
Retrieves the value for the lexeme ID.
Overrides:getID in class ClassDecl
Returns:
The value for the lexeme ID.
public void setImplementsList(List<Access> list)
Replaces the Implements list.
Overrides:setImplementsList in class ClassDecl
Parameters:
list - The new list node to be used as the Implements list.
public int getNumImplements()
Retrieves the number of children in the Implements list.
Overrides:getNumImplements in class ClassDecl
Returns:
Number of children in the Implements list.
Retrieves the number of children in the Implements list. Calling this method will not trigger rewrites..
Overrides:getNumImplementsNoTransform in class ClassDecl
Returns:
Number of children in the Implements list.
public Access getImplements(int i)
Retrieves the element at index i in the Implements list..
Overrides:getImplements in class ClassDecl
Parameters:
i - Index of the element to return.
Returns:
The element at position i in the Implements list.
public void addImplements(Access node)
Append an element to the Implements list.
Overrides:addImplements in class ClassDecl
Parameters:
node - The element to append to the Implements list.
public void addImplementsNoTransform(Access node)
Overrides:addImplementsNoTransform in class ClassDecl
public void setImplements(Access node,
                          int i)
Replaces the Implements list element at index i with the new node node.
Overrides:setImplements in class ClassDecl
Parameters:
node - The new node to replace the old list element.
i - The list index of the node to be replaced.
Retrieves the Implements list.
Overrides:getImplementss in class ClassDecl
Returns:
The node representing the Implements list.
Retrieves the Implements list.

This method does not invoke AST transformations.

Overrides:getImplementssNoTransform in class ClassDecl
Returns:
The node representing the Implements list.
Retrieves the Implements list.
Overrides:getImplementsList in class ClassDecl
Returns:
The node representing the Implements list.
Retrieves the Implements list.

This method does not invoke AST transformations.

Overrides:getImplementsListNoTransform in class ClassDecl
Returns:
The node representing the Implements list.
public void setBodyDeclList(List<BodyDecl> list)
Replaces the BodyDecl list.
Overrides:setBodyDeclList in class ClassDecl
Parameters:
list - The new list node to be used as the BodyDecl list.
public int getNumBodyDecl()
Retrieves the number of children in the BodyDecl list.
Overrides:getNumBodyDecl in class ClassDecl
Returns:
Number of children in the BodyDecl list.
Retrieves the number of children in the BodyDecl list. Calling this method will not trigger rewrites..
Overrides:getNumBodyDeclNoTransform in class ClassDecl
Returns:
Number of children in the BodyDecl list.
public BodyDecl getBodyDecl(int i)
Retrieves the element at index i in the BodyDecl list..
Overrides:getBodyDecl in class ClassDecl
Parameters:
i - Index of the element to return.
Returns:
The element at position i in the BodyDecl list.
public void addBodyDecl(BodyDecl node)
Append an element to the BodyDecl list.
Overrides:addBodyDecl in class ClassDecl
Parameters:
node - The element to append to the BodyDecl list.
public void addBodyDeclNoTransform(BodyDecl node)
Overrides:addBodyDeclNoTransform in class ClassDecl
public void setBodyDecl(BodyDecl node,
                        int i)
Replaces the BodyDecl list element at index i with the new node node.
Overrides:setBodyDecl in class ClassDecl
Parameters:
node - The new node to replace the old list element.
i - The list index of the node to be replaced.
Retrieves the BodyDecl list.
Overrides:getBodyDecls in class ClassDecl
Returns:
The node representing the BodyDecl list.
Retrieves the BodyDecl list.

This method does not invoke AST transformations.

Overrides:getBodyDeclsNoTransform in class ClassDecl
Returns:
The node representing the BodyDecl list.
Retrieves the BodyDecl list.
Overrides:getBodyDeclList in class ClassDecl
Returns:
The node representing the BodyDecl list.
Retrieves the BodyDecl list.

This method does not invoke AST transformations.

Overrides:getBodyDeclListNoTransform in class ClassDecl
Returns:
The node representing the BodyDecl list.
public void setSuperClassAccessOpt(Opt<Access> opt)
Replaces the optional node for the SuperClassAccess child. This is the Opt node containing the child SuperClassAccess, not the actual child!
Overrides:setSuperClassAccessOpt in class ClassDecl
Parameters:
opt - The new node to be used as the optional node for the SuperClassAccess child.
public boolean hasSuperClassAccess()
Check whether the optional SuperClassAccess child exists.
Overrides:hasSuperClassAccess in class ClassDecl
Returns:
true if the optional SuperClassAccess child exists, false if it does not.
Retrieves the (optional) SuperClassAccess child.
Overrides:getSuperClassAccess in class ClassDecl
Returns:
The SuperClassAccess child, if it exists. Returns null otherwise.
public void setSuperClassAccess(Access node)
Replaces the (optional) SuperClassAccess child.
Overrides:setSuperClassAccess in class ClassDecl
Parameters:
node - The new node to be used as the SuperClassAccess child.
Retrieves the optional node for child SuperClassAccess. This is the Opt node containing the child SuperClassAccess, not the actual child!

This method does not invoke AST transformations.

Overrides:getSuperClassAccessOptNoTransform in class ClassDecl
Returns:
The optional node for child SuperClassAccess.
Retrieves the child position of the optional child SuperClassAccess.
Returns:
The the child position of the optional child SuperClassAccess.
public boolean isEnumDecl()
public boolean isStatic()
public boolean Define_boolean_mayBeAbstract(ASTNode caller,
                                            ASTNode child)
Overrides:Define_boolean_mayBeAbstract in class TypeDecl
Source
Declared in Java1.5Frontend/Enums.jrag at line 33
public boolean Define_boolean_mayBeStatic(ASTNode caller,
                                          ASTNode child)
Overrides:Define_boolean_mayBeStatic in class TypeDecl
Source
Declared in Java1.5Frontend/Enums.jrag at line 40
public boolean Define_boolean_mayBeFinal(ASTNode caller,
                                         ASTNode child)
Overrides:Define_boolean_mayBeFinal in class ClassDecl
Source
Declared in Java1.5Frontend/Enums.jrag at line 292
Overrides:rewriteTo in class ClassDecl

Fields

protected boolean isStatic_computed
protected boolean isStatic_value
protected boolean enumConstants_computed
protected java.util.ArrayList enumConstants_value
protected java.util.Collection unimplementedMethods_value
protected boolean flags_computed
protected int flags_value

Inherited Members

Attributes inherited from AST.ClassDecl

Attributes inherited from AST.ReferenceType

Attributes inherited from AST.TypeDecl

Attributes inherited from AST.ASTNode

Methods inherited from class AST.ClassDecl

Methods inherited from class AST.ReferenceType

Methods inherited from class AST.TypeDecl

Methods inherited from class 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

Methods inherited from interface AST.SimpleSet

Methods inherited from interface AST.VariableScope

Fields inherited from AST.ClassDecl

Fields inherited from AST.ReferenceType

Fields inherited from AST.TypeDecl

Fields inherited from AST.ASTNode

Fields inherited from beaver.Symbol

end
id
start
value

Fields inherited from interface AST.SimpleSet