Package org.aspectj.asm.internal
Class ProgramElement
java.lang.Object
org.aspectj.asm.internal.ProgramElement
- All Implemented Interfaces:
Serializable
,IProgramElement
- Author:
- Mik Kersten, Andy Clement
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.aspectj.asm.IProgramElement
IProgramElement.Accessibility, IProgramElement.ExtraInformation, IProgramElement.Kind, IProgramElement.Modifiers
-
Field Summary
Modifier and TypeFieldDescriptionprotected List
<IProgramElement> int
protected String
protected IProgramElement
static boolean
protected ISourceLocation
-
Constructor Summary
ConstructorDescriptionUsed during deserializationProgramElement
(AsmManager asm, String name, IProgramElement.Kind kind, List<IProgramElement> children) Use to create program element nodes that do not correspond to source locationsProgramElement
(AsmManager asm, String name, IProgramElement.Kind kind, ISourceLocation sourceLocation, int modifiers, String comment, List<IProgramElement> children) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addChild
(int position, IProgramElement child) void
addChild
(IProgramElement child) void
addFullyQualifiedName
(String fqname) void
addModifiers
(IProgramElement.Modifiers newModifier) Convenience mechanism for setting new modifiers which do not require knowledge of the private internal representationgenAccessibility
(int modifiers) This correponds to both method return types and field types.getCorrespondingType
(boolean getFullyQualifiedType) The format of the string handle is not specified, but is stable across compilation sessions.getHandleIdentifier
(boolean create) getKind()
getModel()
getName()
List
<char[]> List
<char[]> int
String[]
boolean
boolean
boolean
isCode()
boolean
boolean
boolean
boolean
static String
nameToSignature
(String name) boolean
removeChild
(IProgramElement child) void
setAnnotationRemover
(boolean isRemover) void
setAnnotationStyleDeclaration
(boolean b) void
setAnnotationType
(String fullyQualifiedAnnotationType) void
void
void
setChildren
(List<IProgramElement> children) void
void
setDeclareParentsMap
(Map<String, List<String>> newmap) void
void
setDetails
(String string) void
void
setFormalComment
(String txt) void
setHandleIdentifier
(String handle) void
setImplementor
(boolean value) void
setKind
(IProgramElement.Kind kind) void
setMessage
(IMessage message) void
setModifiers
(int i) void
void
setOverrider
(boolean value) void
setParameterNames
(List<String> list) void
setParameterSignatures
(List<char[]> list, List<String> sourceRefs) Set the parameter signatures for this method/constructor.void
setParent
(IProgramElement parent) void
setParentTypes
(List<String> ps) void
setRunnable
(boolean value) void
setSourceLocation
(ISourceLocation sourceLocation) void
setSourceSignature
(String string) Includes name, parameter types (if any) and details (if any).toLabelString
(boolean getFullyQualifiedArgTypes) TODO: move the "parent != null"→injar heuristic to more explicittoLinkLabelString
(boolean getFullyQualifiedArgTypes) toSignatureString
(boolean getFullyQualifiedArgTypes) toString()
static String
Trim down fully qualified types to their short form (e.g., a.b.c.D<e.f.G> becomes D<G>)walk
(HierarchyWalker walker)
-
Field Details
-
asm
-
shortITDNames
public static boolean shortITDNames -
name
-
parent
-
children
-
kvpairs
-
sourceLocation
-
modifiers
public int modifiers
-
-
Constructor Details
-
ProgramElement
public ProgramElement()Used during deserialization -
ProgramElement
public ProgramElement(AsmManager asm, String name, IProgramElement.Kind kind, List<IProgramElement> children) Use to create program element nodes that do not correspond to source locations -
ProgramElement
public ProgramElement(AsmManager asm, String name, IProgramElement.Kind kind, ISourceLocation sourceLocation, int modifiers, String comment, List<IProgramElement> children)
-
-
Method Details
-
getModel
- Specified by:
getModel
in interfaceIProgramElement
-
getRawModifiers
public int getRawModifiers()- Specified by:
getRawModifiers
in interfaceIProgramElement
-
getModifiers
- Specified by:
getModifiers
in interfaceIProgramElement
-
getAccessibility
- Specified by:
getAccessibility
in interfaceIProgramElement
-
setDeclaringType
-
getDeclaringType
- Specified by:
getDeclaringType
in interfaceIProgramElement
-
getPackageName
- Specified by:
getPackageName
in interfaceIProgramElement
-
getKind
- Specified by:
getKind
in interfaceIProgramElement
-
isCode
public boolean isCode() -
getSourceLocation
- Specified by:
getSourceLocation
in interfaceIProgramElement
-
setSourceLocation
- Specified by:
setSourceLocation
in interfaceIProgramElement
-
getMessage
- Specified by:
getMessage
in interfaceIProgramElement
-
setMessage
- Specified by:
setMessage
in interfaceIProgramElement
-
getParent
- Specified by:
getParent
in interfaceIProgramElement
-
setParent
- Specified by:
setParent
in interfaceIProgramElement
-
isMemberKind
public boolean isMemberKind() -
setRunnable
public void setRunnable(boolean value) - Specified by:
setRunnable
in interfaceIProgramElement
-
isRunnable
public boolean isRunnable()- Specified by:
isRunnable
in interfaceIProgramElement
-
isImplementor
public boolean isImplementor()- Specified by:
isImplementor
in interfaceIProgramElement
-
setImplementor
public void setImplementor(boolean value) - Specified by:
setImplementor
in interfaceIProgramElement
-
isOverrider
public boolean isOverrider()- Specified by:
isOverrider
in interfaceIProgramElement
-
setOverrider
public void setOverrider(boolean value) - Specified by:
setOverrider
in interfaceIProgramElement
-
getFormalComment
- Specified by:
getFormalComment
in interfaceIProgramElement
- Returns:
- the javadoc comment for this program element, null if not available
-
toString
- Specified by:
toString
in interfaceIProgramElement
- Overrides:
toString
in classObject
-
genAccessibility
-
getBytecodeName
- Specified by:
getBytecodeName
in interfaceIProgramElement
-
setBytecodeName
- Specified by:
setBytecodeName
in interfaceIProgramElement
-
setBytecodeSignature
- Specified by:
setBytecodeSignature
in interfaceIProgramElement
-
getBytecodeSignature
- Specified by:
getBytecodeSignature
in interfaceIProgramElement
-
getSourceSignature
- Specified by:
getSourceSignature
in interfaceIProgramElement
- Returns:
- the full signature of this element, as it appears in the source
-
setSourceSignature
- Specified by:
setSourceSignature
in interfaceIProgramElement
-
setKind
- Specified by:
setKind
in interfaceIProgramElement
-
setCorrespondingType
- Specified by:
setCorrespondingType
in interfaceIProgramElement
- Parameters:
s
- return types or field types
-
setParentTypes
- Specified by:
setParentTypes
in interfaceIProgramElement
-
getParentTypes
- Specified by:
getParentTypes
in interfaceIProgramElement
-
setAnnotationType
- Specified by:
setAnnotationType
in interfaceIProgramElement
- Parameters:
fullyQualifiedAnnotationType
- the annotation type, eg. p.q.r.Foo
-
setAnnotationRemover
public void setAnnotationRemover(boolean isRemover) - Specified by:
setAnnotationRemover
in interfaceIProgramElement
-
getAnnotationType
- Specified by:
getAnnotationType
in interfaceIProgramElement
- Returns:
- the fully qualified annotation type, eg. p.q.r.Foo
-
isAnnotationRemover
public boolean isAnnotationRemover()- Specified by:
isAnnotationRemover
in interfaceIProgramElement
-
getRemovedAnnotationTypes
- Specified by:
getRemovedAnnotationTypes
in interfaceIProgramElement
-
getCorrespondingType
Description copied from interface:IProgramElement
This correponds to both method return types and field types.- Specified by:
getCorrespondingType
in interfaceIProgramElement
-
getCorrespondingTypeSignature
- Specified by:
getCorrespondingTypeSignature
in interfaceIProgramElement
- Returns:
- the return type of a method or type of a field in signature form (e.g. Ljava/lang/String;)
-
nameToSignature
-
getCorrespondingType
- Specified by:
getCorrespondingType
in interfaceIProgramElement
-
trim
Trim down fully qualified types to their short form (e.g., a.b.c.D<e.f.G> becomes D<G>) -
getName
- Specified by:
getName
in interfaceIProgramElement
-
getChildren
- Specified by:
getChildren
in interfaceIProgramElement
-
setChildren
- Specified by:
setChildren
in interfaceIProgramElement
-
addChild
- Specified by:
addChild
in interfaceIProgramElement
-
addChild
-
removeChild
- Specified by:
removeChild
in interfaceIProgramElement
-
setName
- Specified by:
setName
in interfaceIProgramElement
-
walk
- Specified by:
walk
in interfaceIProgramElement
-
toLongString
- Specified by:
toLongString
in interfaceIProgramElement
- Returns:
- a string representation of this node and all of its children (recursive)
-
setModifiers
public void setModifiers(int i) - Specified by:
setModifiers
in interfaceIProgramElement
-
addModifiers
Convenience mechanism for setting new modifiers which do not require knowledge of the private internal representation- Parameters:
newModifier
-
-
toSignatureString
- Specified by:
toSignatureString
in interfaceIProgramElement
-
toSignatureString
- Specified by:
toSignatureString
in interfaceIProgramElement
-
toLinkLabelString
TODO: move the "parent != null"→injar heuristic to more explicit- Specified by:
toLinkLabelString
in interfaceIProgramElement
-
toLinkLabelString
- Specified by:
toLinkLabelString
in interfaceIProgramElement
-
toLabelString
Description copied from interface:IProgramElement
Includes name, parameter types (if any) and details (if any).- Specified by:
toLabelString
in interfaceIProgramElement
-
toLabelString
- Specified by:
toLabelString
in interfaceIProgramElement
-
getHandleIdentifier
Description copied from interface:IProgramElement
The format of the string handle is not specified, but is stable across compilation sessions.- Specified by:
getHandleIdentifier
in interfaceIProgramElement
- Returns:
- a string representation of this element
-
getHandleIdentifier
- Specified by:
getHandleIdentifier
in interfaceIProgramElement
-
setHandleIdentifier
- Specified by:
setHandleIdentifier
in interfaceIProgramElement
-
getParameterNames
- Specified by:
getParameterNames
in interfaceIProgramElement
-
setParameterNames
- Specified by:
setParameterNames
in interfaceIProgramElement
-
getParameterTypes
- Specified by:
getParameterTypes
in interfaceIProgramElement
-
getParameterSignatures
- Specified by:
getParameterSignatures
in interfaceIProgramElement
-
getParameterSignaturesSourceRefs
- Specified by:
getParameterSignaturesSourceRefs
in interfaceIProgramElement
-
setParameterSignatures
Set the parameter signatures for this method/constructor. The bit flags tell us if any were not singletypereferences in the the source. A singletypereference would be 'String' - whilst a qualifiedtypereference would be 'java.lang.String' - this has an effect on the handles.- Specified by:
setParameterSignatures
in interfaceIProgramElement
-
getDetails
- Specified by:
getDetails
in interfaceIProgramElement
-
setDetails
- Specified by:
setDetails
in interfaceIProgramElement
-
setFormalComment
- Specified by:
setFormalComment
in interfaceIProgramElement
-
setExtraInfo
- Specified by:
setExtraInfo
in interfaceIProgramElement
-
getExtraInfo
- Specified by:
getExtraInfo
in interfaceIProgramElement
-
isAnnotationStyleDeclaration
public boolean isAnnotationStyleDeclaration()- Specified by:
isAnnotationStyleDeclaration
in interfaceIProgramElement
-
setAnnotationStyleDeclaration
public void setAnnotationStyleDeclaration(boolean b) - Specified by:
setAnnotationStyleDeclaration
in interfaceIProgramElement
-
getDeclareParentsMap
- Specified by:
getDeclareParentsMap
in interfaceIProgramElement
-
setDeclareParentsMap
- Specified by:
setDeclareParentsMap
in interfaceIProgramElement
-
addFullyQualifiedName
- Specified by:
addFullyQualifiedName
in interfaceIProgramElement
-
getFullyQualifiedName
- Specified by:
getFullyQualifiedName
in interfaceIProgramElement
-