Class SelectionEngine

java.lang.Object
org.aspectj.org.eclipse.jdt.internal.codeassist.impl.Engine
org.aspectj.org.eclipse.jdt.internal.codeassist.SelectionEngine
All Implemented Interfaces:
ISearchRequestor, ITypeRequestor

public final class SelectionEngine extends Engine implements ISearchRequestor
The selection engine is intended to infer the nature of a selected name in some source code. This name can be qualified. Selection is resolving context using a name environment (no need to search), assuming the source where selection occurred is correct and will not perform any completion attempt. If this was the desired behavior, a call to the CompletionEngine should be performed instead.
  • Field Details

    • DEBUG

      public static boolean DEBUG
    • PERF

      public static boolean PERF
  • Constructor Details

    • SelectionEngine

      public SelectionEngine(SearchableEnvironment nameEnvironment, ISelectionRequestor requestor, Map settings, WorkingCopyOwner owner)
      The SelectionEngine is responsible for computing the selected object. 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.core.SearchableEnvironment used to resolve type/package references and search for types/packages based on partial names.
      requestor - org.aspectj.org.eclipse.jdt.internal.codeassist.ISelectionRequestor 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.
  • Method Details

    • acceptConstructor

      public void acceptConstructor(int modifiers, char[] simpleTypeName, int parameterCount, char[] signature, char[][] parameterTypes, char[][] parameterNames, int typeModifiers, char[] packageName, int extraFlags, String path, AccessRestriction access)
      Specified by:
      acceptConstructor in interface ISearchRequestor
    • accept

      public void accept(ISourceType[] sourceTypes, PackageBinding packageBinding, AccessRestriction accessRestriction)
      Description copied from class: Engine
      Add additional source types (the first one is the requested type, the rest is formed by the secondary types defined in the same compilation unit).
      Specified by:
      accept in interface ITypeRequestor
      Overrides:
      accept in class Engine
    • acceptType

      public void acceptType(char[] packageName, char[] simpleTypeName, char[][] enclosingTypeNames, int modifiers, AccessRestriction accessRestriction)
      Description copied from interface: ISearchRequestor
      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
    • acceptPackage

      public void acceptPackage(char[] packageName)
      Description copied from interface: ISearchRequestor
      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
    • getParser

      public AssistParser getParser()
      Specified by:
      getParser in class Engine
    • select

      public void select(ICompilationUnit sourceUnit, int selectionSourceStart, int selectionSourceEnd)
      Ask the engine to compute the selection at the specified position of the given compilation unit.
      Parameters:
      sourceUnit - org.aspectj.org.eclipse.jdt.internal.compiler.env.ICompilationUnit the source of the current compilation unit.
      selectionSourceStart - int
      selectionSourceEnd - int a range in the source where the selection is.
    • selectType

      public void selectType(char[] typeName, IType context) throws JavaModelException
      Asks the engine to compute the selection of the given type from the given context
      Parameters:
      typeName - char[] a type name which is to be resolved in the context of a compilation unit. NOTE: the type name is supposed to be correctly reduced (no whitespaces, no unicodes left)
      context - org.aspectj.org.eclipse.jdt.core.IType the context in which code assist is invoked.
      Throws:
      JavaModelException
    • findOverriddenMethodInType

      protected MethodBinding findOverriddenMethodInType(ReferenceBinding overriddenType, MethodBinding overriding) throws JavaModelException
      Throws:
      JavaModelException
    • acceptModule

      public void acceptModule(char[] moduleName)
      Specified by:
      acceptModule in interface ISearchRequestor