org.extendj.ast
node type GenericInterfaceDecl

General Info

Production
GenericInterfaceDecl : InterfaceDecl ::= Modifiers <ID:String> SuperInterface:Access* BodyDecl* TypeParameter:TypeVariable*;
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
                      extended by org.extendj.ast.GenericInterfaceDecl
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Iterable<ASTNode>, java.util.Iterator, org.jastadd.util.PrettyPrintable
Direct Known Subclasses:
GenericInterfaceDeclSubstituted
static class SimpleSet.SimpleSetImpl
           

Description

Source
Declared in /home/jesper/git/extendj/java5/grammar/Generics.ast at line 3

Member Filters

API level:

Aspect:

Constructors

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

Attributes

Source
Declared in /home/jesper/git/extendj/java5/frontend/Generics.jrag at line 209
Aspect
Generics
@ASTNodeAnnotation.Attribute
syn TypeDecl lookupParTypeDecl(java.util.Collection<TypeDecl> typeArgs)
Source
Declared in /home/jesper/git/extendj/java5/frontend/Generics.jrag at line 879
Aspect
LookupParTypeDecl
Overrides:supertypeParClassDecl in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java5/frontend/GenericsSubtype.jrag at line 134
Aspect
GenericsSubtype
Overrides:supertypeParInterfaceDecl in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java5/frontend/GenericsSubtype.jrag at line 137
Aspect
GenericsSubtype
Overrides:instanceOf in class InterfaceDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag at line 442
Aspect
TypeWideningAndIdentity
A type is reifiable if it either refers to a non-parameterized type, is a raw type, is a parameterized type with only unbound wildcard parameters or is an array type with a reifiable type parameter.
Overrides:isReifiable in class TypeDecl
See Also:
"JLS SE7 §4.7"
Source
Declared in /home/jesper/git/extendj/java5/frontend/ReifiableTypes.jrag at line 39
Aspect
ReifiableTypes
Overrides:needsSignatureAttribute in class InterfaceDecl
Source
Declared in /home/jesper/git/extendj/java5/backend/GenericsCodegen.jrag at line 345
Aspect
GenericsCodegen
Overrides:classSignature in class InterfaceDecl
Source
Declared in /home/jesper/git/extendj/java5/backend/GenericsCodegen.jrag at line 401
Aspect
GenericsCodegen
Overrides:strictSupertypeParClassDecl in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java8/frontend/GenericsSubtype.jrag at line 155
Aspect
StrictSubtype
Overrides:strictSupertypeParInterfaceDecl in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java8/frontend/GenericsSubtype.jrag at line 159
Aspect
StrictSubtype
Overrides:isGenericType in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java5/frontend/Generics.jrag at line 204
Aspect
Generics
Transforms the parameter and calls the lookupParTypeDecl attribute for ArrayList arguments.
Source
Declared in /home/jesper/git/extendj/java5/frontend/Generics.jrag at line 871
Aspect
LookupParTypeDecl
Source
Declared in /home/jesper/git/extendj/java5/frontend/Generics.jrag at line 657
Aspect
GenericsTypeCheck

Methods

public void typeCheck()
Overrides:typeCheck in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java5/frontend/Generics.jrag at line 648
Aspect
GenericsTypeCheck
public InterfaceDecl substitutedInterfaceDecl(org.extendj.ast.Parameterization parTypeDecl)
Overrides:substitutedInterfaceDecl in class InterfaceDecl
Source
Declared in /home/jesper/git/extendj/java5/frontend/Generics.jrag at line 1454
Aspect
LookupParTypeDecl
public void prettyPrint(org.jastadd.util.PrettyPrinter out)
Specified by:prettyPrint in interface org.jastadd.util.PrettyPrintableOverrides:prettyPrint in class InterfaceDecl
Source
Declared in /home/jesper/git/extendj/java5/frontend/PrettyPrint.jadd at line 113
Aspect
Java5PrettyPrint
Overrides:makeGeneric in class InterfaceDecl
Source
Declared in /home/jesper/git/extendj/java5/frontend/Generics.jrag at line 298
Aspect
Generics
public org.extendj.ast.SimpleSet addTypeVariables(org.extendj.ast.SimpleSet c,
                                                  java.lang.String name)
Source
Declared in /home/jesper/git/extendj/java5/frontend/Generics.jrag at line 717
Aspect
GenericsNameBinding
public List createArgumentList(java.util.Collection<TypeDecl> args)
Source
Declared in /home/jesper/git/extendj/java5/frontend/Generics.jrag at line 913
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 InterfaceDecl
Source
Declared in /home/jesper/git/extendj/ASTNode at line 10
protected int numChildren()
Overrides:numChildren in class InterfaceDecl
Source
Declared in /home/jesper/git/extendj/ASTNode at line 33
public boolean mayHaveRewrite()
Overrides:mayHaveRewrite in class InterfaceDecl
Source
Declared in /home/jesper/git/extendj/ASTNode at line 39
public void flushAttrCache()
Overrides:flushAttrCache in class InterfaceDecl
Source
Declared in /home/jesper/git/extendj/ASTNode at line 45
public void flushCollectionCache()
Overrides:flushCollectionCache in class InterfaceDecl
Source
Declared in /home/jesper/git/extendj/ASTNode at line 60
public void flushRewriteCache()
Overrides:flushRewriteCache in class InterfaceDecl
Source
Declared in /home/jesper/git/extendj/ASTNode at line 66
public GenericInterfaceDecl clone()
                           throws java.lang.CloneNotSupportedException
Overrides:clone in class InterfaceDecl
Throws:
java.lang.CloneNotSupportedException
Source
Declared in /home/jesper/git/extendj/ASTNode at line 72
public GenericInterfaceDecl copy()
Overrides:copy in class InterfaceDecl
Source
Declared in /home/jesper/git/extendj/ASTNode at line 79
@Deprecated
public GenericInterfaceDecl 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 InterfaceDecl
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 98
public GenericInterfaceDecl 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 InterfaceDecl
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 108
public GenericInterfaceDecl 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 InterfaceDecl
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 128
protected boolean is$Equal(ASTNode node)
Overrides:is$Equal in class InterfaceDecl
Source
Declared in /home/jesper/git/extendj/ASTNode at line 135
public void setModifiers(Modifiers node)
Replaces the Modifiers child.
Overrides:setModifiers in class InterfaceDecl
Parameters:
node - The new node to replace the Modifiers child.
Retrieves the Modifiers child.
Overrides:getModifiers in class InterfaceDecl
Returns:
The current node used as the Modifiers child.
Retrieves the Modifiers child.

This method does not invoke AST transformations.

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

This method does not invoke AST transformations.

Overrides:getSuperInterfaceListNoTransform in class InterfaceDecl
Returns:
The node representing the SuperInterface list.
Retrieves the SuperInterface list.
Overrides:getSuperInterfaces in class InterfaceDecl
Returns:
The node representing the SuperInterface list.
Retrieves the SuperInterface list.

This method does not invoke AST transformations.

Overrides:getSuperInterfacesNoTransform in class InterfaceDecl
Returns:
The node representing the SuperInterface list.
public void setBodyDeclList(List<BodyDecl> list)
Replaces the BodyDecl list.
Overrides:setBodyDeclList in class InterfaceDecl
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 InterfaceDecl
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 InterfaceDecl
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 InterfaceDecl
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 InterfaceDecl
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 InterfaceDecl
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 InterfaceDecl
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 InterfaceDecl
Returns:
The node representing the BodyDecl list.
Retrieves the BodyDecl list.

This method does not invoke AST transformations.

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

This method does not invoke AST transformations.

Overrides:getBodyDeclsNoTransform in class InterfaceDecl
Returns:
The node representing the BodyDecl list.
Replaces the TypeParameter list.
Parameters:
list - The new list node to be used as the TypeParameter list.
public int getNumTypeParameter()
Retrieves the number of children in the TypeParameter list.
Returns:
Number of children in the TypeParameter list.
Retrieves the number of children in the TypeParameter list. Calling this method will not trigger rewrites.
Returns:
Number of children in the TypeParameter list.
Retrieves the element at index i in the TypeParameter list.
Parameters:
i - Index of the element to return.
Returns:
The element at position i in the TypeParameter list.
public boolean hasTypeParameter()
Check whether the TypeParameter list has any children.
Returns:
true if it has at least one child, false otherwise.
public void addTypeParameter(TypeVariable node)
Append an element to the TypeParameter list.
Parameters:
node - The element to append to the TypeParameter list.
public void setTypeParameter(TypeVariable node,
                             int i)
Replaces the TypeParameter 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 TypeParameter list.
Returns:
The node representing the TypeParameter list.
Retrieves the TypeParameter list.

This method does not invoke AST transformations.

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

This method does not invoke AST transformations.

Returns:
The node representing the TypeParameter list.
public boolean Define_isNestedType(ASTNode caller,
                                   ASTNode child)
Overrides:Define_isNestedType in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag at line 569
protected boolean canDefine_isNestedType(ASTNode caller,
                                         ASTNode child)
Overrides:Define_enclosingType in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag at line 544
protected boolean canDefine_enclosingType(ASTNode caller,
                                          ASTNode child)
public org.extendj.ast.SimpleSet Define_lookupType(ASTNode caller,
                                                   ASTNode child,
                                                   java.lang.String name)
Overrides:Define_lookupType in class TypeDecl
Source
Declared in /home/jesper/git/extendj/java5/frontend/GenericMethods.jrag at line 197
protected boolean canDefine_lookupType(ASTNode caller,
                                       ASTNode child,
                                       java.lang.String name)
public TypeDecl Define_genericDecl(ASTNode caller,
                                   ASTNode child)
Overrides:Define_genericDecl in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java5/frontend/GenericsParTypeDecl.jrag at line 71
protected boolean canDefine_genericDecl(ASTNode caller,
                                        ASTNode child)
public int Define_typeVarPosition(ASTNode caller,
                                  ASTNode child)
Overrides:Define_typeVarPosition in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/TypeVariablePositions.jrag at line 29
protected boolean canDefine_typeVarPosition(ASTNode caller,
                                            ASTNode child)
public boolean Define_typeVarInMethod(ASTNode caller,
                                      ASTNode child)
Overrides:Define_typeVarInMethod in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/TypeVariablePositions.jrag at line 32
protected boolean canDefine_typeVarInMethod(ASTNode caller,
                                            ASTNode child)
Overrides:rewriteTo in class InterfaceDecl
public java.lang.String fullName()
public java.lang.String typeName()
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 boolean rawType_computed
protected boolean usesTypeVariable_computed
protected boolean usesTypeVariable_value
protected java.util.Map subtype_TypeDecl_values
protected java.util.Map instanceOf_TypeDecl_values
protected boolean classSignature_computed
protected java.lang.String classSignature_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.InterfaceDecl

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

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

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