org.extendj.ast
node type InterfaceDecl

General Info

Production
InterfaceDecl : ReferenceType ::= Modifiers <ID:String> SuperInterface:Access* BodyDecl*;
Type Hierarchy:
java.lang.Object
  extended by beaver.Symbol
      extended by org.extendj.ast.ASTNode<ASTNode>
          extended by org.extendj.ast.TypeDecl
              extended by org.extendj.ast.ReferenceType
                  extended by org.extendj.ast.InterfaceDecl
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Iterable<ASTNode>, java.util.Iterator, org.jastadd.util.PrettyPrintable
Direct Known Subclasses:
AnnotationDecl, GenericInterfaceDecl, InterfaceDeclSubstituted, ParInterfaceDecl
static class SimpleSet.SimpleSetImpl
           

Description

Source
Declared in /home/jesper/git/extendj/java4/grammar/Java.ast at line 64

Member Filters

API level:

Aspect:

Constructors

public InterfaceDecl()
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 1
public InterfaceDecl(Modifiers p0,
                     java.lang.String p1,
                     List<Access> p2,
                     List<BodyDecl> p3)
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 15
public InterfaceDecl(Modifiers p0,
                     beaver.Symbol p1,
                     List<Access> p2,
                     List<BodyDecl> p3)
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 21

Attributes

Overrides:lookupSuperConstructor in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupConstructor.jrag at line 42
Aspect
ConstructScope
@ASTNodeAnnotation.Attribute
syn java.util.Map<java.lang.String,org.extendj.ast.SimpleSet> methodsSignatureMap()
Overrides:methodsSignatureMap in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupMethod.jrag at line 466
Aspect
MemberMethods
@ASTNodeAnnotation.Attribute
syn org.extendj.ast.SimpleSet ancestorMethods(java.lang.String signature)
Overrides:ancestorMethods in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupMethod.jrag at line 536
Aspect
AncestorMethods
@ASTNodeAnnotation.Attribute
syn org.extendj.ast.SimpleSet memberTypes(java.lang.String name)
Overrides:memberTypes in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupType.jrag at line 619
Aspect
TypeScopePropagation
Overrides:memberFieldsMap in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupVariable.jrag at line 383
Aspect
Fields
@ASTNodeAnnotation.Attribute
syn org.extendj.ast.SimpleSet memberFields(java.lang.String name)
Overrides:memberFields in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupVariable.jrag at line 435
Aspect
Fields
Overrides:isAbstract in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/Modifiers.jrag at line 245
Aspect
Modifiers
Overrides:isStatic in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/Modifiers.jrag at line 247
Aspect
Modifiers
Source
Declared in /home/jesper/git/extendj/java4/frontend/PrettyPrintUtil.jrag at line 243
Aspect
PrettyPrintUtil
Overrides:castingConversionTo in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag at line 109
Aspect
TypeConversion
Overrides:isInterfaceDecl in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag at line 235
Aspect
TypeAnalysis
Overrides:instanceOf in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag at line 442
Aspect
TypeWideningAndIdentity
Overrides:isSupertypeOfClassDecl in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag at line 458
Aspect
TypeWideningAndIdentity
Overrides:isSupertypeOfInterfaceDecl in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag at line 478
Aspect
TypeWideningAndIdentity
Overrides:isSupertypeOfArrayDecl in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag at line 493
Aspect
TypeWideningAndIdentity
Overrides:typeDescriptor in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/backend/ConstantPoolNames.jrag at line 77
Aspect
ConstantPoolNames
Overrides:arrayTypeDescriptor in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/backend/CreateBCode.jrag at line 900
Aspect
CreateBCode
@ASTNodeAnnotation.Attribute
syn java.util.Map<java.lang.String,org.extendj.ast.SimpleSet> erasedAncestorMethodsMap()
Overrides:erasedAncestorMethodsMap in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java5/frontend/Generics.jrag at line 496
Aspect
GenericsTypeCheck
Overrides:implementedInterfaces in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java5/frontend/Generics.jrag at line 614
Aspect
GenericsTypeCheck
Overrides:supertypeClassDecl in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java5/frontend/GenericsSubtype.jrag at line 448
Aspect
GenericsSubtype
Overrides:supertypeInterfaceDecl in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java5/frontend/GenericsSubtype.jrag at line 465
Aspect
GenericsSubtype
Overrides:supertypeArrayDecl in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java5/frontend/GenericsSubtype.jrag at line 480
Aspect
GenericsSubtype
@ASTNodeAnnotation.Attribute
syn org.extendj.ast.SimpleSet bridgeCandidates(java.lang.String signature)
Overrides:bridgeCandidates in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java5/backend/GenericsCodegen.jrag at line 228
Aspect
GenericsCodegen
Overrides:needsSignatureAttribute in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java5/backend/GenericsCodegen.jrag at line 345
Aspect
GenericsCodegen
Overrides:classSignature in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java5/backend/GenericsCodegen.jrag at line 401
Aspect
GenericsCodegen
Source
Declared in /home/jesper/git/extendj/java8/frontend/Annotations.jrag at line 29
Aspect
Annotations
Source
Declared in /home/jesper/git/extendj/java8/frontend/FunctionDescriptor.jrag at line 84
Aspect
FunctionDescriptor
@ASTNodeAnnotation.Attribute
syn org.extendj.ast.FunctionDescriptor functionDescriptor()
Source
Declared in /home/jesper/git/extendj/java8/frontend/FunctionDescriptor.jrag at line 97
Aspect
FunctionDescriptor
Overrides:isFunctionalInterface in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java8/frontend/FunctionalInterface.jrag at line 30
Aspect
FunctionalInterface
Source
Declared in /home/jesper/git/extendj/java8/frontend/FunctionalInterface.jrag at line 33
Aspect
FunctionalInterface
Source
Declared in /home/jesper/git/extendj/java8/frontend/FunctionalInterface.jrag at line 305
Aspect
FunctionalInterface
Overrides:strictSupertypeClassDecl in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java8/frontend/GenericsSubtype.jrag at line 370
Aspect
StrictSubtype
Overrides:strictSupertypeInterfaceDecl in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java8/frontend/GenericsSubtype.jrag at line 390
Aspect
StrictSubtype
Overrides:strictSupertypeArrayDecl in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java8/frontend/GenericsSubtype.jrag at line 407
Aspect
StrictSubtype
Source
Declared in /home/jesper/git/extendj/java8/frontend/MethodSignature.jrag at line 1053
Aspect
MethodSignature18
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag at line 122
Aspect
TypeConversion

Methods

public void accessControl()
Overrides:accessControl in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/AccessControl.jrag at line 197
Aspect
AccessControl
public void checkModifiers()
Overrides:checkModifiers in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/Modifiers.jrag at line 132
Aspect
Modifiers
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/java4/frontend/PrettyPrint.jadd at line 325
Aspect
Java4PrettyPrint
public java.util.Iterator<TypeDecl> interfacesIterator()
Description copied from class: TypeDeclIterate over interfaces which this type implements.
Overrides:interfacesIterator in class TypeDecl
Returns:
interface iterator
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag at line 718
Aspect
SuperClasses
public void generateClassfile()
Overrides:generateClassfile in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/backend/GenerateClassfile.jrag at line 171
Aspect
GenerateClassfile
public FieldDeclaration createStaticClassField(java.lang.String name)
Overrides:createStaticClassField in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/backend/Java2Rewrites.jrag at line 121
Aspect
Java2Rewrites
Overrides:createStaticClassMethod in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/backend/Java2Rewrites.jrag at line 124
Aspect
Java2Rewrites
Source
Declared in /home/jesper/git/extendj/java4/backend/Java2Rewrites.jrag at line 129
Aspect
Java2Rewrites
Overrides:makeGeneric in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java5/frontend/Generics.jrag at line 273
Aspect
Generics
public InterfaceDecl substitutedInterfaceDecl(org.extendj.ast.Parameterization parTypeDecl)
Source
Declared in /home/jesper/git/extendj/java5/frontend/Generics.jrag at line 1445
Aspect
LookupParTypeDecl
public void init$Children()
Initializes the child array to the correct size. Initializes List and Opt nta children.
Overrides:init$Children in class ReferenceType
Source
Declared in /home/jesper/git/extendj/ASTNode at line 10
protected int numChildren()
Overrides:numChildren in class ReferenceType
Source
Declared in /home/jesper/git/extendj/ASTNode at line 30
public boolean mayHaveRewrite()
Overrides:mayHaveRewrite in class ReferenceType
Source
Declared in /home/jesper/git/extendj/ASTNode at line 36
public void flushAttrCache()
Overrides:flushAttrCache in class ReferenceType
Source
Declared in /home/jesper/git/extendj/ASTNode at line 42
public void flushCollectionCache()
Overrides:flushCollectionCache in class ReferenceType
Source
Declared in /home/jesper/git/extendj/ASTNode at line 71
public void flushRewriteCache()
Overrides:flushRewriteCache in class ReferenceType
Source
Declared in /home/jesper/git/extendj/ASTNode at line 77
public InterfaceDecl clone()
                    throws java.lang.CloneNotSupportedException
Overrides:clone in class ReferenceType
Throws:
java.lang.CloneNotSupportedException
Source
Declared in /home/jesper/git/extendj/ASTNode at line 83
public InterfaceDecl copy()
Overrides:copy in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 90
@Deprecated
public InterfaceDecl 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.

Specified by:fullCopy in class ReferenceType
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 109
public InterfaceDecl treeCopyNoTransform()
Create a deep copy of the AST subtree at this node. The copy is dangling, i.e. has no parent.
Specified by:treeCopyNoTransform in class ReferenceType
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 119
public InterfaceDecl 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.
Specified by:treeCopy in class ReferenceType
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 139
protected boolean is$Equal(ASTNode node)
Overrides:is$Equal in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 146
public void setModifiers(Modifiers node)
Replaces the Modifiers child.
Overrides:setModifiers in class ReferenceType
Parameters:
node - The new node to replace the Modifiers child.
Retrieves the Modifiers child.
Overrides:getModifiers in class ReferenceType
Returns:
The current node used as the Modifiers child.
Retrieves the Modifiers child.

This method does not invoke AST transformations.

Overrides:getModifiersNoTransform in class ReferenceType
Returns:
The current node used as the Modifiers child.
public void setID(java.lang.String value)
Replaces the lexeme ID.
Overrides:setID in class ReferenceType
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 ReferenceType
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.
Overrides:getID in class ReferenceType
Returns:
The value for the lexeme ID.
public void setSuperInterfaceList(List<Access> list)
Replaces the SuperInterface list.
Parameters:
list - The new list node to be used as the SuperInterface list.
Retrieves the number of children in the SuperInterface list.
Returns:
Number of children in the SuperInterface list.
Retrieves the number of children in the SuperInterface list. Calling this method will not trigger rewrites.
Returns:
Number of children in the SuperInterface list.
public Access getSuperInterface(int i)
Retrieves the element at index i in the SuperInterface list.
Parameters:
i - Index of the element to return.
Returns:
The element at position i in the SuperInterface list.
public boolean hasSuperInterface()
Check whether the SuperInterface list has any children.
Returns:
true if it has at least one child, false otherwise.
public void addSuperInterface(Access node)
Append an element to the SuperInterface list.
Parameters:
node - The element to append to the SuperInterface list.
public void setSuperInterface(Access node,
                              int i)
Replaces the SuperInterface 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 SuperInterface list.
Returns:
The node representing the SuperInterface list.
Retrieves the SuperInterface list.

This method does not invoke AST transformations.

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

This method does not invoke AST transformations.

Returns:
The node representing the SuperInterface list.
public void setBodyDeclList(List<BodyDecl> list)
Replaces the BodyDecl list.
Overrides:setBodyDeclList in class ReferenceType
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 ReferenceType
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 ReferenceType
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 ReferenceType
Parameters:
i - Index of the element to return.
Returns:
The element at position i in the BodyDecl list.
public boolean hasBodyDecl()
Check whether the BodyDecl list has any children.
Overrides:hasBodyDecl in class ReferenceType
Returns:
true if it has at least one child, false otherwise.
public void addBodyDecl(BodyDecl node)
Append an element to the BodyDecl list.
Overrides:addBodyDecl in class ReferenceType
Parameters:
node - The element to append to the BodyDecl list.
public void setBodyDecl(BodyDecl node,
                        int i)
Replaces the BodyDecl list element at index i with the new node node.
Overrides:setBodyDecl in class ReferenceType
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:getBodyDeclList in class ReferenceType
Returns:
The node representing the BodyDecl list.
Retrieves the BodyDecl list.

This method does not invoke AST transformations.

Overrides:getBodyDeclListNoTransform in class ReferenceType
Returns:
The node representing the BodyDecl list.
Retrieves the BodyDecl list.
Overrides:getBodyDecls in class ReferenceType
Returns:
The node representing the BodyDecl list.
Retrieves the BodyDecl list.

This method does not invoke AST transformations.

Overrides:getBodyDeclsNoTransform in class ReferenceType
Returns:
The node representing the BodyDecl list.
public void nameCheck()
Overrides:nameCheck in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java8/frontend/NameCheck.jrag at line 339
Aspect
Java8NameCheck
public org.extendj.ast.NameType Define_nameType(ASTNode caller,
                                                ASTNode child)
Overrides:Define_nameType in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/SyntacticClassification.jrag at line 36
protected boolean canDefine_nameType(ASTNode caller,
                                     ASTNode child)
public TypeDecl Define_hostType(ASTNode caller,
                                ASTNode child)
Overrides:Define_hostType in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 71
protected boolean canDefine_hostType(ASTNode caller,
                                     ASTNode child)
public boolean Define_withinSuppressWarnings(ASTNode caller,
                                             ASTNode child,
                                             java.lang.String annot)
Overrides:Define_withinSuppressWarnings in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java7/frontend/SuppressWarnings.jrag at line 38
protected boolean canDefine_withinSuppressWarnings(ASTNode caller,
                                                   ASTNode child,
                                                   java.lang.String annot)
public boolean Define_withinDeprecatedAnnotation(ASTNode caller,
                                                 ASTNode child)
Overrides:Define_withinDeprecatedAnnotation in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java5/frontend/Annotations.jrag at line 449
protected boolean canDefine_withinDeprecatedAnnotation(ASTNode caller,
                                                       ASTNode child)
public boolean Define_inExtendsOrImplements(ASTNode caller,
                                            ASTNode child)
Overrides:Define_inExtendsOrImplements in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java5/frontend/Generics.jrag at line 338
protected boolean canDefine_inExtendsOrImplements(ASTNode caller,
                                                  ASTNode child)
Overrides:rewriteTo in class ReferenceType
public int size()
public boolean isEmpty()
public boolean contains(java.lang.Object o)
public org.extendj.ast.SimpleSet lookupVariable(java.lang.String name)

Fields

protected java.util.Map<java.lang.String,org.extendj.ast.SimpleSet> methodsSignatureMap_value
protected java.util.Map ancestorMethods_String_values
protected java.util.Map memberTypes_String_values
protected boolean memberFieldsMap_computed
protected java.util.HashMap memberFieldsMap_value
protected java.util.Map memberFields_String_values
protected boolean isStatic_computed
protected boolean isStatic_value
protected java.util.Map castingConversionTo_TypeDecl_values
protected java.util.Map instanceOf_TypeDecl_values
protected int isCircular_visited
protected boolean isCircular_computed
protected boolean isCircular_initialized
protected boolean isCircular_value
protected boolean typeDescriptor_computed
protected java.lang.String typeDescriptor_value
protected java.util.Map<java.lang.String,org.extendj.ast.SimpleSet> erasedAncestorMethodsMap_value
protected java.util.HashSet<InterfaceDecl> implementedInterfaces_value
protected java.util.Map subtype_TypeDecl_values
protected boolean classSignature_computed
protected java.lang.String classSignature_value
protected boolean hasFunctionDescriptor_value
protected boolean functionDescriptor_computed
protected org.extendj.ast.FunctionDescriptor functionDescriptor_value
protected boolean isFunctionalInterface_value
protected boolean isFunctional_computed
protected boolean isFunctional_value
protected java.util.LinkedList<MethodDecl> collectAbstractMethods_value
protected java.util.Map strictSubtype_TypeDecl_values
public static final org.extendj.ast.SimpleSet emptySet
public static final org.extendj.ast.SimpleSet fullSet

Inherited Members

Attributes inherited from org.extendj.ast.ReferenceType

Attributes inherited from org.extendj.ast.TypeDecl

Attributes inherited from org.extendj.ast.ASTNode

Methods inherited from class org.extendj.ast.ReferenceType

Methods inherited from class org.extendj.ast.TypeDecl

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.ReferenceType

Fields inherited from org.extendj.ast.TypeDecl

Fields inherited from org.extendj.ast.ASTNode

Fields inherited from beaver.Symbol

end
id
start
value