org.aspectj.org.eclipse.jdt.internal.codeassist
Class CompletionEngine
java.lang.Object
org.aspectj.org.eclipse.jdt.internal.codeassist.impl.Engine
org.aspectj.org.eclipse.jdt.internal.codeassist.CompletionEngine
- All Implemented Interfaces:
- ISearchRequestor, RelevanceConstants, ITypeRequestor, TypeConstants, TerminalTokens, SuffixConstants
public final class CompletionEngine
- extends Engine
- implements ISearchRequestor, TypeConstants, TerminalTokens, RelevanceConstants, SuffixConstants
This class is the entry point for source completions.
It contains two public APIs used to call CodeAssist on a given source with
a given environment, assisting position and storage (and possibly options).
| Fields inherited from class org.aspectj.org.eclipse.jdt.internal.codeassist.impl.Engine |
compilerOptions, currentPackageName, discouragedReferenceIsError, forbiddenReferenceIsError, importCacheCount, importCachesInitialized, importsCache, lookupEnvironment, nameEnvironment, onDemandImportCacheCount, onDemandImportsCache, options, unitScope |
| Fields inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeConstants |
ANNOTATION, ANNOTATION_PREFIX, ANNOTATION_SUFFIX, ANONYM_PREFIX, ANONYM_SUFFIX, BOOLEAN, BYTE, CHAR, CharArray_JAVA_IO_OBJECTINPUTSTREAM, CharArray_JAVA_IO_OBJECTOUTPUTSTREAM, CharArray_JAVA_IO_OBJECTSTREAMFIELD, CharArray_JAVA_LANG_ANNOTATION_ANNOTATION, CharArray_JAVA_LANG_ENUM, CharArray_JAVA_LANG_OBJECT, CLINIT, CLONE, CONSTRAINT_EQUAL, CONSTRAINT_EXTENDS, CONSTRAINT_SUPER, DOUBLE, EQUALS, FLOAT, GETCLASS, HASHCODE, INIT, INVOKE, IO, JAVA, JAVA_IO, JAVA_IO_EXTERNALIZABLE, JAVA_IO_IOEXCEPTION, JAVA_IO_OBJECTINPUTSTREAM, JAVA_IO_OBJECTOUTPUTSTREAM, JAVA_IO_OBJECTSTREAMEXCEPTION, JAVA_IO_PRINTSTREAM, JAVA_IO_SERIALIZABLE, JAVA_LANG, JAVA_LANG_ANNOTATION_ANNOTATION, JAVA_LANG_ANNOTATION_DOCUMENTED, JAVA_LANG_ANNOTATION_ELEMENTTYPE, JAVA_LANG_ANNOTATION_INHERITED, JAVA_LANG_ANNOTATION_RETENTION, JAVA_LANG_ANNOTATION_RETENTIONPOLICY, JAVA_LANG_ANNOTATION_TARGET, JAVA_LANG_ASSERTIONERROR, JAVA_LANG_AUTOCLOSEABLE, JAVA_LANG_BOOLEAN, JAVA_LANG_BYTE, JAVA_LANG_CHARACTER, JAVA_LANG_CLASS, JAVA_LANG_CLASSNOTFOUNDEXCEPTION, JAVA_LANG_CLONEABLE, JAVA_LANG_DEPRECATED, JAVA_LANG_DOUBLE, JAVA_LANG_ENUM, JAVA_LANG_ERROR, JAVA_LANG_EXCEPTION, JAVA_LANG_FLOAT, JAVA_LANG_ILLEGALARGUMENTEXCEPTION, JAVA_LANG_INTEGER, JAVA_LANG_INVOKE_METHODHANDLE_$_POLYMORPHICSIGNATURE, JAVA_LANG_INVOKE_METHODHANDLE_POLYMORPHICSIGNATURE, JAVA_LANG_ITERABLE, JAVA_LANG_LONG, JAVA_LANG_NOCLASSDEFERROR, JAVA_LANG_OBJECT, JAVA_LANG_OVERRIDE, JAVA_LANG_REFLECT_CONSTRUCTOR, JAVA_LANG_REFLECT_FIELD, JAVA_LANG_REFLECT_METHOD, JAVA_LANG_RUNTIMEEXCEPTION, JAVA_LANG_SAFEVARARGS, JAVA_LANG_SHORT, JAVA_LANG_STRING, JAVA_LANG_STRINGBUFFER, JAVA_LANG_STRINGBUILDER, JAVA_LANG_SUPPRESSWARNINGS, JAVA_LANG_SYSTEM, JAVA_LANG_THROWABLE, JAVA_LANG_VOID, JAVA_UTIL_COLLECTION, JAVA_UTIL_ITERATOR, JAVAX_RMI_CORBA_STUB, LANG, LENGTH, LONG, MAIN, MISMATCH, NULL, OBJECT, OK, PACKAGE_INFO_NAME, READOBJECT, READRESOLVE, REFLECT, SERIALPERSISTENTFIELDS, SERIALVERSIONUID, SHORT, SYNTHETIC_ACCESS_METHOD_PREFIX, SYNTHETIC_ASSERT_DISABLED, SYNTHETIC_CLASS, SYNTHETIC_ENCLOSING_INSTANCE_PREFIX, SYNTHETIC_ENUM_CONSTANT_INITIALIZATION_METHOD_PREFIX, SYNTHETIC_ENUM_VALUES, SYNTHETIC_OUTER_LOCAL_PREFIX, SYNTHETIC_STATIC_FACTORY, SYNTHETIC_SWITCH_ENUM_TABLE, TYPE, UNCHECKED, UPPER_ANNOTATION_TYPE, UPPER_CLASS, UPPER_CONSTRUCTOR, UPPER_FIELD, UPPER_LOCAL_VARIABLE, UPPER_METHOD, UPPER_PACKAGE, UPPER_PARAMETER, UPPER_RUNTIME, UPPER_SOURCE, UTIL, VALUEOF, VALUES, WILDCARD_CAPTURE, WILDCARD_CAPTURE_NAME_PREFIX, WILDCARD_CAPTURE_NAME_SUFFIX, WILDCARD_EXTENDS, WILDCARD_MINUS, WILDCARD_NAME, WILDCARD_PLUS, WILDCARD_STAR, WILDCARD_SUPER, WRITEOBJECT, WRITEREPLACE |
| Fields inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.parser.TerminalTokens |
TokenNameabstract, TokenNameafter, TokenNameAND, TokenNameAND_AND, TokenNameAND_EQUAL, TokenNamearound, TokenNameaspect, TokenNameassert, TokenNameAT, TokenNamebefore, TokenNameboolean, TokenNamebreak, TokenNamebyte, TokenNamecase, TokenNamecatch, TokenNamechar, TokenNameCharacterLiteral, TokenNameclass, TokenNameCOLON, TokenNameCOMMA, TokenNameCOMMENT_BLOCK, TokenNameCOMMENT_JAVADOC, TokenNameCOMMENT_LINE, TokenNameconst, TokenNamecontinue, TokenNamedeclare, TokenNamedefault, TokenNameDIVIDE, TokenNameDIVIDE_EQUAL, TokenNamedo, TokenNameDOT, TokenNamedouble, TokenNameDoubleLiteral, TokenNameELLIPSIS, TokenNameelse, TokenNameenum, TokenNameEOF, TokenNameEQUAL, TokenNameEQUAL_EQUAL, TokenNameERROR, TokenNameextends, TokenNamefalse, TokenNamefinal, TokenNamefinally, TokenNamefloat, TokenNameFloatingPointLiteral, TokenNamefor, TokenNamegoto, TokenNameGREATER, TokenNameGREATER_EQUAL, TokenNameIdentifier, TokenNameif, TokenNameimplements, TokenNameimport, TokenNameinstanceof, TokenNameint, TokenNameIntegerLiteral, TokenNameinterface, TokenNameLBRACE, TokenNameLBRACKET, TokenNameLEFT_SHIFT, TokenNameLEFT_SHIFT_EQUAL, TokenNameLESS, TokenNameLESS_EQUAL, TokenNamelong, TokenNameLongLiteral, TokenNameLPAREN, TokenNameMINUS, TokenNameMINUS_EQUAL, TokenNameMINUS_MINUS, TokenNameMULTIPLY, TokenNameMULTIPLY_EQUAL, TokenNamenative, TokenNamenew, TokenNameNOT, TokenNameNOT_EQUAL, TokenNamenull, TokenNameOR, TokenNameOR_EQUAL, TokenNameOR_OR, TokenNamepackage, TokenNamePLUS, TokenNamePLUS_EQUAL, TokenNamePLUS_PLUS, TokenNamepointcut, TokenNameprivate, TokenNameprivileged, TokenNameprotected, TokenNamepublic, TokenNameQUESTION, TokenNameRBRACE, TokenNameRBRACKET, TokenNameREMAINDER, TokenNameREMAINDER_EQUAL, TokenNamereturn, TokenNameRIGHT_SHIFT, TokenNameRIGHT_SHIFT_EQUAL, TokenNameRPAREN, TokenNameSEMICOLON, TokenNameshort, TokenNamestatic, TokenNamestrictfp, TokenNameStringLiteral, TokenNamesuper, TokenNameswitch, TokenNamesynchronized, TokenNamethis, TokenNamethrow, TokenNamethrows, TokenNametransient, TokenNametrue, TokenNametry, TokenNameTWIDDLE, TokenNameUNSIGNED_RIGHT_SHIFT, TokenNameUNSIGNED_RIGHT_SHIFT_EQUAL, TokenNamevoid, TokenNamevolatile, TokenNamewhile, TokenNameWHITESPACE, TokenNameXOR, TokenNameXOR_EQUAL |
| Fields inherited from interface org.aspectj.org.eclipse.jdt.internal.codeassist.RelevanceConstants |
R_ABSTRACT_METHOD, R_ANNOTATION, R_CAMEL_CASE, R_CASE, R_CLASS, R_DEFAULT, R_ENUM, R_ENUM_CONSTANT, R_EXACT_EXPECTED_TYPE, R_EXACT_NAME, R_EXCEPTION, R_EXPECTED_TYPE, R_FINAL, R_INLINE_TAG, R_INTERESTING, R_INTERFACE, R_METHOD_OVERIDE, R_NAME_FIRST_PREFIX, R_NAME_FIRST_SUFFIX, R_NAME_LESS_NEW_CHARACTERS, R_NAME_PREFIX, R_NAME_SUFFIX, R_NO_PROBLEMS, R_NON_INHERITED, R_NON_RESTRICTED, R_NON_STATIC, R_QUALIFIED, R_RESOLVED, R_TARGET, R_TRUE_OR_FALSE, R_UNQUALIFIED, R_VALUE_TAG, R_VOID |
| Fields inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.util.SuffixConstants |
EXTENSION_aj, EXTENSION_AJ, EXTENSION_class, EXTENSION_CLASS, EXTENSION_java, EXTENSION_JAVA, SUFFIX_aj, SUFFIX_AJ, SUFFIX_class, SUFFIX_CLASS, SUFFIX_java, SUFFIX_JAVA, SUFFIX_STRING_aj, SUFFIX_STRING_AJ, SUFFIX_STRING_class, SUFFIX_STRING_CLASS, SUFFIX_STRING_java, SUFFIX_STRING_JAVA |
|
Method Summary |
void |
accept(ICompilationUnit sourceUnit,
AccessRestriction accessRestriction)
Add an additional compilation unit. |
void |
acceptConstructor(int modifiers,
char[] simpleTypeName,
int parameterCount,
char[] signature,
char[][] parameterTypes,
char[][] parameterNames,
int typeModifiers,
char[] packageName,
int extraFlags,
java.lang.String path,
AccessRestriction accessRestriction)
|
void |
acceptPackage(char[] packageName)
One result of the search consists of a new package. |
void |
acceptType(char[] packageName,
char[] simpleTypeName,
char[][] enclosingTypeNames,
int modifiers,
AccessRestriction accessRestriction)
One result of the search consists of a new type. |
void |
acceptUnresolvedName(char[] name)
|
void |
complete(ICompilationUnit sourceUnit,
int completionPosition,
int pos,
ITypeRoot root)
Ask the engine to compute a completion at the specified position
of the given compilation unit. |
void |
complete(IType type,
char[] snippet,
int position,
char[][] localVariableTypeNames,
char[][] localVariableNames,
int[] localVariableModifiers,
boolean isStatic)
|
static char[] |
createBindingKey(char[] packageName,
char[] typeName)
|
static char[][] |
createDefaultParameterNames(int length)
|
static char[] |
createMethodSignature(char[][] parameterPackageNames,
char[][] parameterTypeNames,
char[] returnTypeSignature)
|
static char[] |
createMethodSignature(char[][] parameterPackageNames,
char[][] parameterTypeNames,
char[] returnPackagename,
char[] returnTypeName)
|
static char[] |
createNonGenericTypeSignature(char[] qualifiedPackageName,
char[] qualifiedTypeName)
|
protected InternalCompletionProposal |
createProposal(int kind,
int completionOffset)
|
static char[] |
createTypeSignature(char[] qualifiedPackageName,
char[] qualifiedTypeName)
|
protected void |
findFieldsAndMethods(char[] token,
TypeBinding receiverType,
Scope scope,
ObjectVector fieldsFound,
ObjectVector methodsFound,
InvocationSite invocationSite,
Scope invocationScope,
boolean implicitCall,
boolean superCall,
Binding[] missingElements,
int[] missingElementsStarts,
int[] missingElementsEnds,
boolean missingElementsHaveProblems,
char[] castedReceiver,
int receiverStart,
int receiverEnd)
|
protected void |
findFieldsAndMethodsFromAnotherReceiver(char[] token,
TypeReference receiverType,
Scope scope,
ObjectVector fieldsFound,
ObjectVector methodsFound,
InvocationSite invocationSite,
Scope invocationScope,
boolean implicitCall,
boolean superCall,
Binding[] missingElements,
int[] missingElementsStarts,
int[] missingElementsEnds,
boolean missingElementsHaveProblems,
char[][] receiverName,
int receiverStart,
int receiverEnd)
|
protected void |
findMembers(char[] token,
ReferenceBinding receiverType,
Scope scope,
InvocationSite invocationSite,
boolean isInsideAnnotationAttribute,
Binding[] missingElements,
int[] missingElementsStarts,
int[] missingElementsEnds,
boolean missingElementsHaveProblems)
|
protected void |
findMemberTypes(char[] typeName,
ReferenceBinding receiverType,
Scope scope,
SourceTypeBinding typeInvocation,
boolean staticOnly,
boolean staticFieldsAndMethodOnly,
ObjectVector typesFound,
Binding[] missingElements,
int[] missingElementsStarts,
int[] missingElementsEnds,
boolean missingElementsHaveProblems)
|
AssistParser |
getParser()
|
protected boolean |
hasArrayTypeAsExpectedSuperTypes()
|
protected boolean |
hasPossibleAnnotationTarget(TypeBinding typeBinding,
Scope scope)
|
protected void |
printDebug(CategorizedProblem error)
|
protected void |
printDebug(CompletionProposal proposal)
|
protected void |
reset()
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
typeCache
public HashtableOfObject typeCache
openedBinaryTypes
public int openedBinaryTypes
DEBUG
public static boolean DEBUG
PERF
public static boolean PERF
NO_TYPE_COMPLETION_ON_EMPTY_TOKEN
public static final boolean NO_TYPE_COMPLETION_ON_EMPTY_TOKEN
- See Also:
- Constant Field Values
CompletionEngine
public CompletionEngine(SearchableEnvironment nameEnvironment,
CompletionRequestor requestor,
java.util.Map settings,
IJavaProject javaProject,
WorkingCopyOwner owner,
IProgressMonitor monitor)
- The CompletionEngine is responsible for computing source completions.
It requires a searchable name environment, which supports some
specific search APIs, and a requestor to feed back the results to a UI.
- Parameters:
nameEnvironment - org.aspectj.org.eclipse.jdt.internal.codeassist.ISearchableNameEnvironment
used to resolve type/package references and search for types/packages
based on partial names.requestor - org.aspectj.org.eclipse.jdt.internal.codeassist.ICompletionRequestor
since the engine might produce answers of various forms, the engine
is associated with a requestor able to accept all possible completions.settings - java.util.Map
set of options used to configure the code assist engine.
createBindingKey
public static char[] createBindingKey(char[] packageName,
char[] typeName)
createDefaultParameterNames
public static char[][] createDefaultParameterNames(int length)
createMethodSignature
public static char[] createMethodSignature(char[][] parameterPackageNames,
char[][] parameterTypeNames,
char[] returnTypeSignature)
createMethodSignature
public static char[] createMethodSignature(char[][] parameterPackageNames,
char[][] parameterTypeNames,
char[] returnPackagename,
char[] returnTypeName)
createNonGenericTypeSignature
public static char[] createNonGenericTypeSignature(char[] qualifiedPackageName,
char[] qualifiedTypeName)
createTypeSignature
public static char[] createTypeSignature(char[] qualifiedPackageName,
char[] qualifiedTypeName)
accept
public void accept(ICompilationUnit sourceUnit,
AccessRestriction accessRestriction)
- Description copied from class:
Engine
- Add an additional compilation unit.
- Specified by:
accept in interface ITypeRequestor- Overrides:
accept in class Engine
acceptConstructor
public void acceptConstructor(int modifiers,
char[] simpleTypeName,
int parameterCount,
char[] signature,
char[][] parameterTypes,
char[][] parameterNames,
int typeModifiers,
char[] packageName,
int extraFlags,
java.lang.String path,
AccessRestriction accessRestriction)
- Specified by:
acceptConstructor in interface ISearchRequestor
acceptPackage
public void acceptPackage(char[] packageName)
- One result of the search consists of a new package.
NOTE - All package names are presented in their readable form:
Package names are in the form "a.b.c".
The default package is represented by an empty array.
- Specified by:
acceptPackage in interface ISearchRequestor
acceptType
public void acceptType(char[] packageName,
char[] simpleTypeName,
char[][] enclosingTypeNames,
int modifiers,
AccessRestriction accessRestriction)
- One result of the search consists of a new type.
NOTE - All package and type names are presented in their readable form:
Package names are in the form "a.b.c".
Nested type names are in the qualified form "A.I".
The default package is represented by an empty array.
- Specified by:
acceptType in interface ISearchRequestor
acceptUnresolvedName
public void acceptUnresolvedName(char[] name)
complete
public void complete(ICompilationUnit sourceUnit,
int completionPosition,
int pos,
ITypeRoot root)
- Ask the engine to compute a completion at the specified position
of the given compilation unit.
No return
completion results are answered through a requestor.
- Parameters:
sourceUnit - org.aspectj.org.eclipse.jdt.internal.compiler.env.ICompilationUnit
the source of the current compilation unit.completionPosition - int
a position in the source where the completion is taking place.
This position is relative to the source provided.
complete
public void complete(IType type,
char[] snippet,
int position,
char[][] localVariableTypeNames,
char[][] localVariableNames,
int[] localVariableModifiers,
boolean isStatic)
createProposal
protected InternalCompletionProposal createProposal(int kind,
int completionOffset)
findFieldsAndMethods
protected void findFieldsAndMethods(char[] token,
TypeBinding receiverType,
Scope scope,
ObjectVector fieldsFound,
ObjectVector methodsFound,
InvocationSite invocationSite,
Scope invocationScope,
boolean implicitCall,
boolean superCall,
Binding[] missingElements,
int[] missingElementsStarts,
int[] missingElementsEnds,
boolean missingElementsHaveProblems,
char[] castedReceiver,
int receiverStart,
int receiverEnd)
findFieldsAndMethodsFromAnotherReceiver
protected void findFieldsAndMethodsFromAnotherReceiver(char[] token,
TypeReference receiverType,
Scope scope,
ObjectVector fieldsFound,
ObjectVector methodsFound,
InvocationSite invocationSite,
Scope invocationScope,
boolean implicitCall,
boolean superCall,
Binding[] missingElements,
int[] missingElementsStarts,
int[] missingElementsEnds,
boolean missingElementsHaveProblems,
char[][] receiverName,
int receiverStart,
int receiverEnd)
findMembers
protected void findMembers(char[] token,
ReferenceBinding receiverType,
Scope scope,
InvocationSite invocationSite,
boolean isInsideAnnotationAttribute,
Binding[] missingElements,
int[] missingElementsStarts,
int[] missingElementsEnds,
boolean missingElementsHaveProblems)
findMemberTypes
protected void findMemberTypes(char[] typeName,
ReferenceBinding receiverType,
Scope scope,
SourceTypeBinding typeInvocation,
boolean staticOnly,
boolean staticFieldsAndMethodOnly,
ObjectVector typesFound,
Binding[] missingElements,
int[] missingElementsStarts,
int[] missingElementsEnds,
boolean missingElementsHaveProblems)
getParser
public AssistParser getParser()
- Specified by:
getParser in class Engine
hasArrayTypeAsExpectedSuperTypes
protected boolean hasArrayTypeAsExpectedSuperTypes()
hasPossibleAnnotationTarget
protected boolean hasPossibleAnnotationTarget(TypeBinding typeBinding,
Scope scope)
printDebug
protected void printDebug(CategorizedProblem error)
printDebug
protected void printDebug(CompletionProposal proposal)
reset
protected void reset()