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
FieldsModifier and TypeFieldDescriptionprotected List<IProgramElement>intprotected Stringprotected IProgramElementstatic booleanprotected ISourceLocation -
Constructor Summary
ConstructorsConstructorDescriptionUsed 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 TypeMethodDescriptionvoidaddChild(int position, IProgramElement child) voidaddChild(IProgramElement child) voidaddFullyQualifiedName(String fqname) voidaddModifiers(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[]>intString[]booleanbooleanbooleanisCode()booleanbooleanbooleanbooleanstatic StringnameToSignature(String name) booleanremoveChild(IProgramElement child) voidsetAnnotationRemover(boolean isRemover) voidsetAnnotationStyleDeclaration(boolean b) voidsetAnnotationType(String fullyQualifiedAnnotationType) voidvoidvoidsetChildren(List<IProgramElement> children) voidvoidsetDeclareParentsMap(Map<String, List<String>> newmap) voidvoidsetDetails(String string) voidvoidsetFormalComment(String txt) voidsetHandleIdentifier(String handle) voidsetImplementor(boolean value) voidsetKind(IProgramElement.Kind kind) voidsetMessage(IMessage message) voidsetModifiers(int i) voidvoidsetOverrider(boolean value) voidsetParameterNames(List<String> list) voidsetParameterSignatures(List<char[]> list, List<String> sourceRefs) Set the parameter signatures for this method/constructor.voidsetParent(IProgramElement parent) voidsetParentTypes(List<String> ps) voidsetRunnable(boolean value) voidsetSourceLocation(ISourceLocation sourceLocation) voidsetSourceSignature(String string) Includes name, parameter types (if any) and details (if any).toLabelString(boolean getFullyQualifiedArgTypes) TODO: move the "parent !toLinkLabelString(boolean getFullyQualifiedArgTypes) toSignatureString(boolean getFullyQualifiedArgTypes) toString()static StringTrim 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:
getModelin interfaceIProgramElement
-
getRawModifiers
public int getRawModifiers()- Specified by:
getRawModifiersin interfaceIProgramElement
-
getModifiers
- Specified by:
getModifiersin interfaceIProgramElement
-
getAccessibility
- Specified by:
getAccessibilityin interfaceIProgramElement
-
setDeclaringType
-
getDeclaringType
- Specified by:
getDeclaringTypein interfaceIProgramElement
-
getPackageName
- Specified by:
getPackageNamein interfaceIProgramElement
-
getKind
- Specified by:
getKindin interfaceIProgramElement
-
isCode
public boolean isCode() -
getSourceLocation
- Specified by:
getSourceLocationin interfaceIProgramElement
-
setSourceLocation
- Specified by:
setSourceLocationin interfaceIProgramElement
-
getMessage
- Specified by:
getMessagein interfaceIProgramElement
-
setMessage
- Specified by:
setMessagein interfaceIProgramElement
-
getParent
- Specified by:
getParentin interfaceIProgramElement
-
setParent
- Specified by:
setParentin interfaceIProgramElement
-
isMemberKind
public boolean isMemberKind() -
setRunnable
public void setRunnable(boolean value) - Specified by:
setRunnablein interfaceIProgramElement
-
isRunnable
public boolean isRunnable()- Specified by:
isRunnablein interfaceIProgramElement
-
isImplementor
public boolean isImplementor()- Specified by:
isImplementorin interfaceIProgramElement
-
setImplementor
public void setImplementor(boolean value) - Specified by:
setImplementorin interfaceIProgramElement
-
isOverrider
public boolean isOverrider()- Specified by:
isOverriderin interfaceIProgramElement
-
setOverrider
public void setOverrider(boolean value) - Specified by:
setOverriderin interfaceIProgramElement
-
getFormalComment
- Specified by:
getFormalCommentin interfaceIProgramElement- Returns:
- the javadoc comment for this program element, null if not available
-
toString
- Specified by:
toStringin interfaceIProgramElement- Overrides:
toStringin classObject
-
genAccessibility
-
getBytecodeName
- Specified by:
getBytecodeNamein interfaceIProgramElement
-
setBytecodeName
- Specified by:
setBytecodeNamein interfaceIProgramElement
-
setBytecodeSignature
- Specified by:
setBytecodeSignaturein interfaceIProgramElement
-
getBytecodeSignature
- Specified by:
getBytecodeSignaturein interfaceIProgramElement
-
getSourceSignature
- Specified by:
getSourceSignaturein interfaceIProgramElement- Returns:
- the full signature of this element, as it appears in the source
-
setSourceSignature
- Specified by:
setSourceSignaturein interfaceIProgramElement
-
setKind
- Specified by:
setKindin interfaceIProgramElement
-
setCorrespondingType
- Specified by:
setCorrespondingTypein interfaceIProgramElement- Parameters:
s- return types or field types
-
setParentTypes
- Specified by:
setParentTypesin interfaceIProgramElement
-
getParentTypes
- Specified by:
getParentTypesin interfaceIProgramElement
-
setAnnotationType
- Specified by:
setAnnotationTypein interfaceIProgramElement- Parameters:
fullyQualifiedAnnotationType- the annotation type, eg. p.q.r.Foo
-
setAnnotationRemover
public void setAnnotationRemover(boolean isRemover) - Specified by:
setAnnotationRemoverin interfaceIProgramElement
-
getAnnotationType
- Specified by:
getAnnotationTypein interfaceIProgramElement- Returns:
- the fully qualified annotation type, eg. p.q.r.Foo
-
isAnnotationRemover
public boolean isAnnotationRemover()- Specified by:
isAnnotationRemoverin interfaceIProgramElement
-
getRemovedAnnotationTypes
- Specified by:
getRemovedAnnotationTypesin interfaceIProgramElement
-
getCorrespondingType
Description copied from interface:IProgramElementThis correponds to both method return types and field types.- Specified by:
getCorrespondingTypein interfaceIProgramElement
-
getCorrespondingTypeSignature
- Specified by:
getCorrespondingTypeSignaturein 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:
getCorrespondingTypein 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:
getNamein interfaceIProgramElement
-
getChildren
- Specified by:
getChildrenin interfaceIProgramElement
-
setChildren
- Specified by:
setChildrenin interfaceIProgramElement
-
addChild
- Specified by:
addChildin interfaceIProgramElement
-
addChild
-
removeChild
- Specified by:
removeChildin interfaceIProgramElement
-
setName
- Specified by:
setNamein interfaceIProgramElement
-
walk
- Specified by:
walkin interfaceIProgramElement
-
toLongString
- Specified by:
toLongStringin interfaceIProgramElement- Returns:
- a string representation of this node and all of its children (recursive)
-
setModifiers
public void setModifiers(int i) - Specified by:
setModifiersin interfaceIProgramElement
-
addModifiers
Convenience mechanism for setting new modifiers which do not require knowledge of the private internal representation- Parameters:
newModifier-
-
toSignatureString
- Specified by:
toSignatureStringin interfaceIProgramElement
-
toSignatureString
- Specified by:
toSignatureStringin interfaceIProgramElement
-
toLinkLabelString
TODO: move the "parent != null"→injar heuristic to more explicit- Specified by:
toLinkLabelStringin interfaceIProgramElement
-
toLinkLabelString
- Specified by:
toLinkLabelStringin interfaceIProgramElement
-
toLabelString
Description copied from interface:IProgramElementIncludes name, parameter types (if any) and details (if any).- Specified by:
toLabelStringin interfaceIProgramElement
-
toLabelString
- Specified by:
toLabelStringin interfaceIProgramElement
-
getHandleIdentifier
Description copied from interface:IProgramElementThe format of the string handle is not specified, but is stable across compilation sessions.- Specified by:
getHandleIdentifierin interfaceIProgramElement- Returns:
- a string representation of this element
-
getHandleIdentifier
- Specified by:
getHandleIdentifierin interfaceIProgramElement
-
setHandleIdentifier
- Specified by:
setHandleIdentifierin interfaceIProgramElement
-
getParameterNames
- Specified by:
getParameterNamesin interfaceIProgramElement
-
setParameterNames
- Specified by:
setParameterNamesin interfaceIProgramElement
-
getParameterTypes
- Specified by:
getParameterTypesin interfaceIProgramElement
-
getParameterSignatures
- Specified by:
getParameterSignaturesin interfaceIProgramElement
-
getParameterSignaturesSourceRefs
- Specified by:
getParameterSignaturesSourceRefsin 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:
setParameterSignaturesin interfaceIProgramElement
-
getDetails
- Specified by:
getDetailsin interfaceIProgramElement
-
setDetails
- Specified by:
setDetailsin interfaceIProgramElement
-
setFormalComment
- Specified by:
setFormalCommentin interfaceIProgramElement
-
setExtraInfo
- Specified by:
setExtraInfoin interfaceIProgramElement
-
getExtraInfo
- Specified by:
getExtraInfoin interfaceIProgramElement
-
isAnnotationStyleDeclaration
public boolean isAnnotationStyleDeclaration()- Specified by:
isAnnotationStyleDeclarationin interfaceIProgramElement
-
setAnnotationStyleDeclaration
public void setAnnotationStyleDeclaration(boolean b) - Specified by:
setAnnotationStyleDeclarationin interfaceIProgramElement
-
getDeclareParentsMap
- Specified by:
getDeclareParentsMapin interfaceIProgramElement
-
setDeclareParentsMap
- Specified by:
setDeclareParentsMapin interfaceIProgramElement
-
addFullyQualifiedName
- Specified by:
addFullyQualifiedNamein interfaceIProgramElement
-
getFullyQualifiedName
- Specified by:
getFullyQualifiedNamein interfaceIProgramElement
-