Class SearchableEnvironment

java.lang.Object
org.aspectj.org.eclipse.jdt.internal.core.SearchableEnvironment
All Implemented Interfaces:
IJavaSearchConstants, IModuleAwareNameEnvironment, INameEnvironment
Direct Known Subclasses:
CancelableNameEnvironment

public class SearchableEnvironment extends Object implements IModuleAwareNameEnvironment, IJavaSearchConstants
This class provides a SearchableBuilderEnvironment for code assist which uses the Java model as a search tool.
  • Field Details

  • Constructor Details

  • Method Details

    • find

      protected NameEnvironmentAnswer find(String typeName, String packageName, IPackageFragmentRoot[] moduleContext)
      Returns the given type in the the given package if it exists, otherwise null.
    • findModules

      public void findModules(char[] prefix, ISearchRequestor requestor, IJavaProject javaProject)
      Find the modules that start with the given prefix. A valid prefix is a qualified name separated by periods (ex. java.util). The packages found are passed to: ISearchRequestor.acceptModule(char[][] moduleName)
    • findPackages

      public void findPackages(char[] prefix, ISearchRequestor requestor)
      Find the packages that start with the given prefix. A valid prefix is a qualified name separated by periods (ex. java.util). The packages found are passed to: ISearchRequestor.acceptPackage(char[][] packageName)
    • findPackages

      public void findPackages(char[] prefix, ISearchRequestor requestor, IPackageFragmentRoot[] moduleContext, boolean followRequires)
      Find the packages that start with the given prefix and belong to the given module. A valid prefix is a qualified name separated by periods (ex. java.util). The packages found are passed to: ISearchRequestor.acceptPackage(char[][] packageName)
    • findExactTypes

      public void findExactTypes(char[] name, boolean findMembers, int searchFor, ISearchRequestor storage)
      Find the top-level types that are defined in the current environment and whose simple name matches the given name. The types found are passed to one of the following methods (if additional information is known about the types): ISearchRequestor.acceptType(char[][] packageName, char[] typeName) ISearchRequestor.acceptClass(char[][] packageName, char[] typeName, int modifiers) ISearchRequestor.acceptInterface(char[][] packageName, char[] typeName, int modifiers) This method can not be used to find member types... member types are found relative to their enclosing type.
    • findTypeInModules

      public NameEnvironmentAnswer findTypeInModules(char[][] compoundTypeName, ModuleBinding module)
      Find a type in the given module or any module read by it. Does not check accessibility / unique visibility, but returns the first observable type found.
      Parameters:
      compoundTypeName - name of the sought type
      module - start into the module graph
      Returns:
      the answer :)
    • findType

      public NameEnvironmentAnswer findType(char[][] compoundTypeName, char[] moduleName)
      Specified by:
      findType in interface IModuleAwareNameEnvironment
      See Also:
      IModuleAwareNameEnvironment.findType(char[][],char[])
    • findType

      public NameEnvironmentAnswer findType(char[] name, char[][] packageName, char[] moduleName)
      Description copied from interface: IModuleAwareNameEnvironment
      Answer a type identified by the given names. moduleName may be one of the special names from ModuleBinding (ANY, ANY_NAMED, UNNAMED).
      Specified by:
      findType in interface IModuleAwareNameEnvironment
      See Also:
      IModuleAwareNameEnvironment.findType(char[],char[][],char[])
    • findTypes

      public void findTypes(char[] prefix, boolean findMembers, boolean camelCaseMatch, int searchFor, ISearchRequestor storage)
      Find the top-level types that are defined in the current environment and whose name starts with the given prefix. The prefix is a qualified name separated by periods or a simple name (ex. java.util.V or V). The types found are passed to one of the following methods (if additional information is known about the types): ISearchRequestor.acceptType(char[][] packageName, char[] typeName) ISearchRequestor.acceptClass(char[][] packageName, char[] typeName, int modifiers) ISearchRequestor.acceptInterface(char[][] packageName, char[] typeName, int modifiers) This method can not be used to find member types... member types are found relative to their enclosing type.
    • findTypes

      public void findTypes(char[] prefix, boolean findMembers, int matchRule, int searchFor, ISearchRequestor storage, org.eclipse.core.runtime.IProgressMonitor monitor)
      Must be used only by CompletionEngine. The progress monitor is used to be able to cancel completion operations Find the top-level types that are defined in the current environment and whose name starts with the given prefix. The prefix is a qualified name separated by periods or a simple name (ex. java.util.V or V). The types found are passed to one of the following methods (if additional information is known about the types): ISearchRequestor.acceptType(char[][] packageName, char[] typeName) ISearchRequestor.acceptClass(char[][] packageName, char[] typeName, int modifiers) ISearchRequestor.acceptInterface(char[][] packageName, char[] typeName, int modifiers) This method can not be used to find member types... member types are found relative to their enclosing type.
    • findConstructorDeclarations

      public void findConstructorDeclarations(char[] prefix, int matchRule, ISearchRequestor storage, org.eclipse.core.runtime.IProgressMonitor monitor)
      Must be used only by CompletionEngine. The progress monitor is used to be able to cancel completion operations Find constructor declarations that are defined in the current environment and whose name starts with the given prefix. The prefix is a qualified name separated by periods or a simple name (ex. java.util.V or V). The constructors found are passed to one of the following methods: ISearchRequestor.acceptConstructor(...)
    • getModulesDeclaringPackage

      public char[][] getModulesDeclaringPackage(char[][] packageName, char[] moduleName)
      Specified by:
      getModulesDeclaringPackage in interface IModuleAwareNameEnvironment
      See Also:
      IModuleAwareNameEnvironment.getModulesDeclaringPackage(char[][], char[])
    • hasCompilationUnit

      public boolean hasCompilationUnit(char[][] pkgName, char[] moduleName, boolean checkCUs)
      Description copied from interface: IModuleAwareNameEnvironment
      Answer whether the given package (within the given module) contains any compilation unit.
      Specified by:
      hasCompilationUnit in interface IModuleAwareNameEnvironment
      checkCUs - - if true, check contained Compilation Units for a matching package declaration
      Returns:
      true iff the package contains at least one compilation unit.
    • toStringChar

      protected String toStringChar(char[] name)
      Returns a printable string for the array.
    • toStringCharChar

      protected String toStringCharChar(char[][] names)
      Returns a printable string for the array.
    • cleanup

      public void cleanup()
      Description copied from interface: INameEnvironment
      This method cleans the environment. It is responsible for releasing the memory and freeing resources. Passed that point, the name environment is no longer usable. A name environment can have a long life cycle, therefore it is the responsibility of the code which created it to decide when it is a good time to clean it up.
      Specified by:
      cleanup in interface INameEnvironment
    • getModule

      public IModule getModule(char[] name)
      Description copied from interface: IModuleAwareNameEnvironment
      Get the module with the given name, which must denote a named module.
      Specified by:
      getModule in interface IModuleAwareNameEnvironment
    • getAllAutomaticModules

      public char[][] getAllAutomaticModules()
      Specified by:
      getAllAutomaticModules in interface IModuleAwareNameEnvironment
    • applyModuleUpdates

      public void applyModuleUpdates(IUpdatableModule module, IUpdatableModule.UpdateKind kind)
      Description copied from interface: IModuleAwareNameEnvironment
      Ask the name environment to perform any updates (add-exports or add-reads) to the given module.
      Specified by:
      applyModuleUpdates in interface IModuleAwareNameEnvironment
      Parameters:
      module - the compiler representation of the module to updates
      kind - selects what kind of updates should be performed
    • getOwnedPackageFragmentRoots

      public static IPackageFragmentRoot[] getOwnedPackageFragmentRoots(IJavaProject javaProject) throws JavaModelException
      Throws:
      JavaModelException
    • listPackages

      public char[][] listPackages(char[] moduleName)
      Description copied from interface: IModuleAwareNameEnvironment
      Lists all packages in the module identified by the given, real module name (i.e., this method is implemented only for IModuleAwareNameEnvironment.LookupStrategy.Named).
      Specified by:
      listPackages in interface IModuleAwareNameEnvironment
      Returns:
      array of flat, dot-separated package names
    • printTimeSpent

      public void printTimeSpent()