Class CompilationUnitStructureRequestor
java.lang.Object
org.aspectj.org.eclipse.jdt.internal.core.util.ReferenceInfoAdapter
org.aspectj.org.eclipse.jdt.internal.core.CompilationUnitStructureRequestor
- All Implemented Interfaces:
ISourceElementRequestor
- Direct Known Subclasses:
CompletionUnitStructureRequestor
public class CompilationUnitStructureRequestor
extends ReferenceInfoAdapter
implements ISourceElementRequestor
A requestor for the fuzzy parser, used to compute the children of an ICompilationUnit.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.ISourceElementRequestor
ISourceElementRequestor.FieldInfo, ISourceElementRequestor.MethodInfo, ISourceElementRequestor.ModuleInfo, ISourceElementRequestor.PackageExportInfo, ISourceElementRequestor.ParameterInfo, ISourceElementRequestor.RequiresInfo, ISourceElementRequestor.ServicesInfo, ISourceElementRequestor.TypeInfo, ISourceElementRequestor.TypeParameterInfo
-
Field Summary
Modifier and TypeFieldDescriptionprotected HashMap
protected HashtableOfObject
protected Stack
Stack of parent handles, corresponding to the info stack.protected boolean
Problem requestor which will get notified of discovered problemsprotected ImportContainer
protected ImportContainerInfo
The import container info - null until createdprotected Stack
Stack of parent scope info objects.protected HashtableOfObject
protected Map
Hashtable of children elements of the compilation unit.protected Parser
protected int
The number of references reported thus far.protected HashtableOfObject
protected ICompilationUnit
The handle to the compilation unit being parsedprotected CompilationUnitElementInfo
The info object for the compilation unit being parsedprotected HashtableOfObject
-
Constructor Summary
ModifierConstructorDescriptionprotected
CompilationUnitStructureRequestor(ICompilationUnit unit, CompilationUnitElementInfo unitInfo, Map newElements)
-
Method Summary
Modifier and TypeMethodDescriptionprotected IAnnotation
acceptAnnotation(Annotation annotation, AnnotatableInfo parentInfo, JavaElement parentHandle)
void
acceptImport(int declarationStart, int declarationEnd, int nameSourceStart, int nameSourceEnd, char[][] tokens, boolean onDemand, int modifiers)
void
acceptLineSeparatorPositions(int[] positions)
void
acceptPackage(ImportReference importReference)
void
acceptProblem(CategorizedProblem problem)
protected void
acceptTypeParameter(ISourceElementRequestor.TypeParameterInfo typeParameterInfo, JavaElementInfo parentInfo)
protected static String[]
convertTypeNamesToSigs(char[][] typeNames)
Convert these type names to signatures.protected Annotation
createAnnotation(JavaElement parent, String name)
protected SourceField
createField(JavaElement parent, ISourceElementRequestor.FieldInfo fieldInfo)
protected ImportContainer
createImportContainer(ICompilationUnit parent)
protected ImportDeclaration
createImportDeclaration(ImportContainer parent, String name, boolean onDemand)
protected Initializer
createInitializer(JavaElement parent)
protected SourceMethod
createMethodHandle(JavaElement parent, ISourceElementRequestor.MethodInfo methodInfo)
protected SourceModule
createModuleHandle(JavaElement parent, ISourceElementRequestor.ModuleInfo modInfo)
protected PackageDeclaration
createPackageDeclaration(JavaElement parent, String name)
protected SourceField
createRecordComponent(JavaElement parent, ISourceElementRequestor.FieldInfo compInfo)
protected SourceType
createTypeHandle(JavaElement parent, ISourceElementRequestor.TypeInfo typeInfo)
protected TypeParameter
createTypeParameter(JavaElement parent, String name)
void
void
enterConstructor(ISourceElementRequestor.MethodInfo methodInfo)
void
enterField(ISourceElementRequestor.FieldInfo fieldInfo)
void
enterInitializer(int declarationSourceStart, int modifiers)
void
enterMethod(ISourceElementRequestor.MethodInfo methodInfo)
void
void
enterType(ISourceElementRequestor.TypeInfo typeInfo)
void
exitCompilationUnit(int declarationEnd)
void
exitConstructor(int declarationEnd)
void
exitField(int initializationStart, int declarationEnd, int declarationSourceEnd)
void
exitInitializer(int declarationEnd)
void
exitMethod(int declarationEnd, Expression defaultValue)
void
exitModule(int declarationEnd)
void
exitRecordComponent(int declarationEnd, int declarationSourceEnd)
void
exitType(int declarationEnd)
protected Object
getMemberValue(MemberValuePair memberValuePair, Expression expression)
protected IMemberValuePair
getMemberValuePair(MemberValuePair memberValuePair)
protected IMemberValuePair[]
getMemberValuePairs(MemberValuePair[] memberValuePairs)
protected void
resolveDuplicates(SourceRefElement handle)
Resolves duplicate handles by incrementing the occurrence count of the handle being created.Methods inherited from class org.aspectj.org.eclipse.jdt.internal.core.util.ReferenceInfoAdapter
acceptAnnotationTypeReference, acceptAnnotationTypeReference, acceptConstructorReference, acceptFieldReference, acceptMethodReference, acceptTypeReference, acceptTypeReference, acceptUnknownReference, acceptUnknownReference
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.ISourceElementRequestor
acceptAnnotationTypeReference, acceptAnnotationTypeReference, acceptConstructorReference, acceptFieldReference, acceptMethodReference, acceptTypeReference, acceptTypeReference, acceptUnknownReference, acceptUnknownReference
-
Field Details
-
unit
The handle to the compilation unit being parsed -
unitInfo
The info object for the compilation unit being parsed -
importContainerInfo
The import container info - null until created -
importContainer
-
newElements
Hashtable of children elements of the compilation unit. Children are added to the table as they are found by the parser. Keys are handles, values are corresponding info objects. -
infoStack
Stack of parent scope info objects. The info on the top of the stack is the parent of the next element found. For example, when we locate a method, the parent info object will be the type the method is contained in. -
children
-
handleStack
Stack of parent handles, corresponding to the info stack. We keep both, since info objects do not have back pointers to handles. -
referenceCount
protected int referenceCountThe number of references reported thus far. Used to expand the arrays of reference kinds and names. -
hasSyntaxErrors
protected boolean hasSyntaxErrorsProblem requestor which will get notified of discovered problems -
parser
-
fieldRefCache
-
messageRefCache
-
typeRefCache
-
unknownRefCache
-
-
Constructor Details
-
CompilationUnitStructureRequestor
protected CompilationUnitStructureRequestor(ICompilationUnit unit, CompilationUnitElementInfo unitInfo, Map newElements)
-
-
Method Details
-
acceptImport
public void acceptImport(int declarationStart, int declarationEnd, int nameSourceStart, int nameSourceEnd, char[][] tokens, boolean onDemand, int modifiers)- Specified by:
acceptImport
in interfaceISourceElementRequestor
- Parameters:
declarationStart
- This is the position of the first character of the import keyword.declarationEnd
- This is the position of the ';' ending the import statement or the end of the comment following the import.nameSourceStart
- This is the position of the first character of the import declaration's name.nameSourceEnd
- This is the position of the last character of the import declaration's name.tokens
- This are the tokens of the import like specified in the source.onDemand
- set to true if the import is an import on demand (e.g. import java.io.*). False otherwise.modifiers
- can be set to static from 1.5 on.- See Also:
ISourceElementRequestor
-
acceptLineSeparatorPositions
public void acceptLineSeparatorPositions(int[] positions)- Specified by:
acceptLineSeparatorPositions
in interfaceISourceElementRequestor
-
acceptPackage
- Specified by:
acceptPackage
in interfaceISourceElementRequestor
- See Also:
ISourceElementRequestor
-
acceptProblem
- Specified by:
acceptProblem
in interfaceISourceElementRequestor
-
createAnnotation
-
createField
-
createRecordComponent
protected SourceField createRecordComponent(JavaElement parent, ISourceElementRequestor.FieldInfo compInfo) -
createImportContainer
-
createImportDeclaration
protected ImportDeclaration createImportDeclaration(ImportContainer parent, String name, boolean onDemand) -
createInitializer
-
createMethodHandle
protected SourceMethod createMethodHandle(JavaElement parent, ISourceElementRequestor.MethodInfo methodInfo) -
createPackageDeclaration
-
createTypeHandle
protected SourceType createTypeHandle(JavaElement parent, ISourceElementRequestor.TypeInfo typeInfo) -
createModuleHandle
protected SourceModule createModuleHandle(JavaElement parent, ISourceElementRequestor.ModuleInfo modInfo) -
createTypeParameter
-
convertTypeNamesToSigs
Convert these type names to signatures.- See Also:
Signature
-
acceptAnnotation
protected IAnnotation acceptAnnotation(Annotation annotation, AnnotatableInfo parentInfo, JavaElement parentHandle) -
enterCompilationUnit
public void enterCompilationUnit()- Specified by:
enterCompilationUnit
in interfaceISourceElementRequestor
- See Also:
ISourceElementRequestor
-
enterConstructor
- Specified by:
enterConstructor
in interfaceISourceElementRequestor
- See Also:
ISourceElementRequestor
-
enterField
- Specified by:
enterField
in interfaceISourceElementRequestor
- See Also:
ISourceElementRequestor
-
enterInitializer
public void enterInitializer(int declarationSourceStart, int modifiers)- Specified by:
enterInitializer
in interfaceISourceElementRequestor
- See Also:
ISourceElementRequestor
-
enterMethod
- Specified by:
enterMethod
in interfaceISourceElementRequestor
- See Also:
ISourceElementRequestor
-
enterModule
- Specified by:
enterModule
in interfaceISourceElementRequestor
-
enterType
- Specified by:
enterType
in interfaceISourceElementRequestor
- See Also:
ISourceElementRequestor
-
acceptTypeParameter
protected void acceptTypeParameter(ISourceElementRequestor.TypeParameterInfo typeParameterInfo, JavaElementInfo parentInfo) -
exitCompilationUnit
public void exitCompilationUnit(int declarationEnd)- Specified by:
exitCompilationUnit
in interfaceISourceElementRequestor
- See Also:
ISourceElementRequestor
-
exitConstructor
public void exitConstructor(int declarationEnd)- Specified by:
exitConstructor
in interfaceISourceElementRequestor
- See Also:
ISourceElementRequestor
-
exitField
public void exitField(int initializationStart, int declarationEnd, int declarationSourceEnd)- Specified by:
exitField
in interfaceISourceElementRequestor
- See Also:
ISourceElementRequestor
-
exitRecordComponent
public void exitRecordComponent(int declarationEnd, int declarationSourceEnd)- Specified by:
exitRecordComponent
in interfaceISourceElementRequestor
- See Also:
ISourceElementRequestor
-
exitInitializer
public void exitInitializer(int declarationEnd)- Specified by:
exitInitializer
in interfaceISourceElementRequestor
- See Also:
ISourceElementRequestor
-
exitMethod
- Specified by:
exitMethod
in interfaceISourceElementRequestor
- See Also:
ISourceElementRequestor
-
exitModule
public void exitModule(int declarationEnd)- Specified by:
exitModule
in interfaceISourceElementRequestor
-
exitType
public void exitType(int declarationEnd)- Specified by:
exitType
in interfaceISourceElementRequestor
- See Also:
ISourceElementRequestor
-
resolveDuplicates
Resolves duplicate handles by incrementing the occurrence count of the handle being created. -
getMemberValuePair
-
getMemberValuePairs
-
getMemberValue
-