org.extendj.ast
node type GenericMethodDecl

General Info

Production
GenericMethodDecl : MethodDecl ::= TypeParameter:TypeVariable*;
Type Hierarchy:
java.lang.Object
  extended by beaver.Symbol
      extended by org.extendj.ast.ASTNode<ASTNode>
          extended by org.extendj.ast.BodyDecl
              extended by org.extendj.ast.MemberDecl
                  extended by org.extendj.ast.MethodDecl
                      extended by org.extendj.ast.GenericMethodDecl
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Iterable<ASTNode>, java.util.Iterator, org.jastadd.util.PrettyPrintable
Direct Known Subclasses:
StandInMethodDecl
static class SimpleSet.SimpleSetImpl
           

Description

Source
Declared in /home/jesper/git/extendj/java5/grammar/GenericMethods.ast at line 2

Member Filters

API level:

Aspect:

Constructors

public GenericMethodDecl()
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 1
public GenericMethodDecl(Modifiers p0,
                         Access p1,
                         java.lang.String p2,
                         List<ParameterDeclaration> p3,
                         List<Access> p4,
                         Opt<Block> p5,
                         List<TypeVariable> p6)
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 17
public GenericMethodDecl(Modifiers p0,
                         Access p1,
                         beaver.Symbol p2,
                         List<ParameterDeclaration> p3,
                         List<Access> p4,
                         Opt<Block> p5,
                         List<TypeVariable> p6)
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 26

Attributes

Source
Declared in /home/jesper/git/extendj/java5/frontend/GenericMethods.jrag at line 48
Aspect
GenericMethods
@ASTNodeAnnotation.Attribute
syn MethodDecl lookupParMethodDecl(java.util.Collection<TypeDecl> typeArguments)
Source
Declared in /home/jesper/git/extendj/java5/frontend/GenericMethods.jrag at line 56
Aspect
GenericMethods
@ASTNodeAnnotation.Attribute
syn org.extendj.ast.SimpleSet localLookupType(java.lang.String name)
Source
Declared in /home/jesper/git/extendj/java5/frontend/GenericMethods.jrag at line 181
Aspect
GenericMethodsNameAnalysis
Source
Declared in /home/jesper/git/extendj/java5/frontend/Generics.jrag at line 1382
Aspect
LookupParTypeDecl
Overrides:isGeneric in class BodyDecl
Returns:
true if this is a generic method or constructor, or a substitued generic method or constructor.
Source
Declared in /home/jesper/git/extendj/java5/frontend/MethodSignature.jrag at line 375
Aspect
MethodSignature15
Note: isGeneric must be called first to check if this declaration is generic. Otherwise this attribute will throw an error!
Overrides:genericDecl in class MethodDecl
Returns:
the original generic declaration of this method.
Source
Declared in /home/jesper/git/extendj/java5/frontend/MethodSignature.jrag at line 386
Aspect
MethodSignature15
Note: isGeneric must be called first to check if this declaration is generic. Otherwise this attribute will throw an error!
Overrides:typeParameters in class BodyDecl
Returns:
type parameters for this declaration.
Source
Declared in /home/jesper/git/extendj/java5/frontend/MethodSignature.jrag at line 408
Aspect
MethodSignature15
Overrides:needsSignatureAttribute in class MethodDecl
Source
Declared in /home/jesper/git/extendj/java5/backend/GenericsCodegen.jrag at line 375
Aspect
GenericsCodegen
Overrides:methodTypeSignature in class MethodDecl
Source
Declared in /home/jesper/git/extendj/java5/backend/GenericsCodegen.jrag at line 508
Aspect
GenericsCodegen
Description copied from class: MethodDecl
8.4.2 Method Signature
Overrides:sameSignature in class MethodDecl
Returns:
true if the signature of this method is same as the the signature of the argument method
Source
Declared in /home/jesper/git/extendj/java8/frontend/FunctionalInterface.jrag at line 36
Aspect
FunctionalInterface
Overrides:subsignatureTo in class MethodDecl
Source
Declared in /home/jesper/git/extendj/java8/frontend/FunctionalInterface.jrag at line 72
Aspect
FunctionalInterface
Source
Declared in /home/jesper/git/extendj/java8/frontend/FunctionalInterface.jrag at line 108
Aspect
FunctionalInterface
Source
Declared in /home/jesper/git/extendj/java8/frontend/FunctionalInterface.jrag at line 150
Aspect
FunctionalInterface
Overrides:usesTypeVariable in class MethodDecl
Source
Declared in /home/jesper/git/extendj/java5/frontend/Generics.jrag at line 1249
Aspect
LookupParTypeDecl
Source
Declared in /home/jesper/git/extendj/java8/frontend/PolyExpressions.jrag at line 110
Aspect
PolyExpressions
@ASTNodeAnnotation.Attribute
inh org.extendj.ast.SimpleSet lookupType(java.lang.String name)
Overrides:lookupType in class BodyDecl
Source
Declared in /home/jesper/git/extendj/java5/frontend/GenericMethods.jrag at line 180
Aspect
GenericMethodsNameAnalysis
Source
Declared in /home/jesper/git/extendj/java8/frontend/TypeVariablePositions.jrag at line 31
Aspect
TypeVariablePositions

Methods

public ParMethodDecl newParMethodDecl(java.util.Collection<TypeDecl> typeArguments)
Source
Declared in /home/jesper/git/extendj/java5/frontend/GenericMethods.jrag at line 59
Aspect
GenericMethods
public void prettyPrint(org.jastadd.util.PrettyPrinter out)
Specified by:prettyPrint in interface org.jastadd.util.PrettyPrintableOverrides:prettyPrint in class MethodDecl
Source
Declared in /home/jesper/git/extendj/java5/frontend/PrettyPrint.jadd at line 237
Aspect
Java5PrettyPrint
public void init$Children()
Initializes the child array to the correct size. Initializes List and Opt nta children.
Overrides:init$Children in class MethodDecl
Source
Declared in /home/jesper/git/extendj/ASTNode at line 10
protected int numChildren()
Overrides:numChildren in class MethodDecl
Source
Declared in /home/jesper/git/extendj/ASTNode at line 38
public boolean mayHaveRewrite()
Overrides:mayHaveRewrite in class MethodDecl
Source
Declared in /home/jesper/git/extendj/ASTNode at line 44
public void flushAttrCache()
Overrides:flushAttrCache in class MethodDecl
Source
Declared in /home/jesper/git/extendj/ASTNode at line 50
public void flushCollectionCache()
Overrides:flushCollectionCache in class MethodDecl
Source
Declared in /home/jesper/git/extendj/ASTNode at line 64
public void flushRewriteCache()
Overrides:flushRewriteCache in class MethodDecl
Source
Declared in /home/jesper/git/extendj/ASTNode at line 70
public GenericMethodDecl clone()
                        throws java.lang.CloneNotSupportedException
Overrides:clone in class MethodDecl
Throws:
java.lang.CloneNotSupportedException
Source
Declared in /home/jesper/git/extendj/ASTNode at line 76
public GenericMethodDecl copy()
Overrides:copy in class MethodDecl
Source
Declared in /home/jesper/git/extendj/ASTNode at line 83
@Deprecated
public GenericMethodDecl 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 MethodDecl
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 102
public GenericMethodDecl 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 MethodDecl
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 112
public GenericMethodDecl 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 MethodDecl
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 132
protected boolean is$Equal(ASTNode node)
Overrides:is$Equal in class MethodDecl
Source
Declared in /home/jesper/git/extendj/ASTNode at line 139
public void setModifiers(Modifiers node)
Replaces the Modifiers child.
Overrides:setModifiers in class MethodDecl
Parameters:
node - The new node to replace the Modifiers child.
Retrieves the Modifiers child.
Overrides:getModifiers in class MethodDecl
Returns:
The current node used as the Modifiers child.
Retrieves the Modifiers child.

This method does not invoke AST transformations.

Overrides:getModifiersNoTransform in class MethodDecl
Returns:
The current node used as the Modifiers child.
public void setTypeAccess(Access node)
Replaces the TypeAccess child.
Overrides:setTypeAccess in class MethodDecl
Parameters:
node - The new node to replace the TypeAccess child.
Retrieves the TypeAccess child.
Overrides:getTypeAccess in class MethodDecl
Returns:
The current node used as the TypeAccess child.
Retrieves the TypeAccess child.

This method does not invoke AST transformations.

Overrides:getTypeAccessNoTransform in class MethodDecl
Returns:
The current node used as the TypeAccess child.
public void setID(java.lang.String value)
Replaces the lexeme ID.
Overrides:setID in class MethodDecl
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 MethodDecl
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 MethodDecl
Returns:
The value for the lexeme ID.
Replaces the Parameter list.
Overrides:setParameterList in class MethodDecl
Parameters:
list - The new list node to be used as the Parameter list.
public int getNumParameter()
Retrieves the number of children in the Parameter list.
Overrides:getNumParameter in class MethodDecl
Returns:
Number of children in the Parameter list.
Retrieves the number of children in the Parameter list. Calling this method will not trigger rewrites.
Overrides:getNumParameterNoTransform in class MethodDecl
Returns:
Number of children in the Parameter list.
Retrieves the element at index i in the Parameter list.
Overrides:getParameter in class MethodDecl
Parameters:
i - Index of the element to return.
Returns:
The element at position i in the Parameter list.
public boolean hasParameter()
Check whether the Parameter list has any children.
Overrides:hasParameter in class MethodDecl
Returns:
true if it has at least one child, false otherwise.
Append an element to the Parameter list.
Overrides:addParameter in class MethodDecl
Parameters:
node - The element to append to the Parameter list.
public void setParameter(ParameterDeclaration node,
                         int i)
Replaces the Parameter list element at index i with the new node node.
Overrides:setParameter in class MethodDecl
Parameters:
node - The new node to replace the old list element.
i - The list index of the node to be replaced.
Retrieves the Parameter list.
Overrides:getParameterList in class MethodDecl
Returns:
The node representing the Parameter list.
Retrieves the Parameter list.

This method does not invoke AST transformations.

Overrides:getParameterListNoTransform in class MethodDecl
Returns:
The node representing the Parameter list.
Retrieves the Parameter list.
Overrides:getParameters in class MethodDecl
Returns:
The node representing the Parameter list.
Retrieves the Parameter list.

This method does not invoke AST transformations.

Overrides:getParametersNoTransform in class MethodDecl
Returns:
The node representing the Parameter list.
public void setExceptionList(List<Access> list)
Replaces the Exception list.
Overrides:setExceptionList in class MethodDecl
Parameters:
list - The new list node to be used as the Exception list.
public int getNumException()
Retrieves the number of children in the Exception list.
Overrides:getNumException in class MethodDecl
Returns:
Number of children in the Exception list.
Retrieves the number of children in the Exception list. Calling this method will not trigger rewrites.
Overrides:getNumExceptionNoTransform in class MethodDecl
Returns:
Number of children in the Exception list.
public Access getException(int i)
Retrieves the element at index i in the Exception list.
Overrides:getException in class MethodDecl
Parameters:
i - Index of the element to return.
Returns:
The element at position i in the Exception list.
public boolean hasException()
Check whether the Exception list has any children.
Overrides:hasException in class MethodDecl
Returns:
true if it has at least one child, false otherwise.
public void addException(Access node)
Append an element to the Exception list.
Overrides:addException in class MethodDecl
Parameters:
node - The element to append to the Exception list.
public void addExceptionNoTransform(Access node)
Overrides:addExceptionNoTransform in class MethodDecl
public void setException(Access node,
                         int i)
Replaces the Exception list element at index i with the new node node.
Overrides:setException in class MethodDecl
Parameters:
node - The new node to replace the old list element.
i - The list index of the node to be replaced.
Retrieves the Exception list.
Overrides:getExceptionList in class MethodDecl
Returns:
The node representing the Exception list.
Retrieves the Exception list.

This method does not invoke AST transformations.

Overrides:getExceptionListNoTransform in class MethodDecl
Returns:
The node representing the Exception list.
Retrieves the Exception list.
Overrides:getExceptions in class MethodDecl
Returns:
The node representing the Exception list.
Retrieves the Exception list.

This method does not invoke AST transformations.

Overrides:getExceptionsNoTransform in class MethodDecl
Returns:
The node representing the Exception list.
public void setBlockOpt(Opt<Block> opt)
Replaces the optional node for the Block child. This is the Opt node containing the child Block, not the actual child!
Overrides:setBlockOpt in class MethodDecl
Parameters:
opt - The new node to be used as the optional node for the Block child.
public void setBlock(Block node)
Replaces the (optional) Block child.
Overrides:setBlock in class MethodDecl
Parameters:
node - The new node to be used as the Block child.
public boolean hasBlock()
Check whether the optional Block child exists.
Overrides:hasBlock in class MethodDecl
Returns:
true if the optional Block child exists, false if it does not.
public Block getBlock()
Retrieves the (optional) Block child.
Overrides:getBlock in class MethodDecl
Returns:
The Block child, if it exists. Returns null otherwise.
Retrieves the optional node for the Block child. This is the Opt node containing the child Block, not the actual child!
Overrides:getBlockOpt in class MethodDecl
Returns:
The optional node for child the Block child.
Retrieves the optional node for child Block. This is the Opt node containing the child Block, not the actual child!

This method does not invoke AST transformations.

Overrides:getBlockOptNoTransform in class MethodDecl
Returns:
The optional node for child Block.
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 org.extendj.ast.NameType Define_nameType(ASTNode caller,
                                                ASTNode child)
Overrides:Define_nameType in class MethodDecl
Source
Declared in /home/jesper/git/extendj/java4/frontend/SyntacticClassification.jrag at line 36
protected boolean canDefine_nameType(ASTNode caller,
                                     ASTNode child)
public org.extendj.ast.SimpleSet Define_lookupType(ASTNode caller,
                                                   ASTNode child,
                                                   java.lang.String name)
Overrides:Define_lookupType in class ASTNode<ASTNode>
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 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)
public int Define_genericMethodLevel(ASTNode caller,
                                     ASTNode child)
Overrides:Define_genericMethodLevel in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/TypeVariablePositions.jrag at line 30
protected boolean canDefine_genericMethodLevel(ASTNode caller,
                                               ASTNode child)
Overrides:rewriteTo in class MethodDecl
public int size()
public boolean isEmpty()
public boolean contains(java.lang.Object o)

Fields

Source
Declared in /home/jesper/git/extendj/java5/frontend/Generics.jrag at line 1383
Aspect
LookupParTypeDecl
protected boolean rawMethodDecl_computed
protected java.util.Map subsignatureTo_MethodDecl_values
protected boolean usesTypeVariable_computed
protected boolean usesTypeVariable_value
protected boolean typeVariableInReturn_value
protected boolean genericMethodLevel_computed
public static final org.extendj.ast.SimpleSet emptySet
public static final org.extendj.ast.SimpleSet fullSet

Inherited Members

Attributes inherited from org.extendj.ast.MethodDecl

Attributes inherited from org.extendj.ast.MemberDecl

Attributes inherited from org.extendj.ast.BodyDecl

Attributes inherited from org.extendj.ast.ASTNode

Methods inherited from class org.extendj.ast.MethodDecl

Methods inherited from class org.extendj.ast.BodyDecl

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

Fields inherited from org.extendj.ast.BodyDecl

Fields inherited from org.extendj.ast.ASTNode

Fields inherited from beaver.Symbol

end
id
start
value