Interface IModuleAwareNameEnvironment

All Superinterfaces:
INameEnvironment
All Known Implementing Classes:
CancelableNameEnvironment, FileSystem, JavaSearchNameEnvironment, NameEnvironment, SearchableEnvironment, StatefulNameEnvironment

public interface IModuleAwareNameEnvironment extends INameEnvironment
A module aware name environment
  • Method Details

    • findType

      default NameEnvironmentAnswer findType(char[][] compoundTypeName)
      Description copied from interface: INameEnvironment
      Find a type with the given compound name. Answer the binary form of the type if it is known to be consistent. Otherwise, answer the compilation unit which defines the type or null if the type does not exist. Types in the default package are specified as {{typeName}}. It is unknown whether the package containing the type actually exists. NOTE: This method can be used to find a member type using its internal name A$B, but the source file for A is answered if the binary file is inconsistent.
      Specified by:
      findType in interface INameEnvironment
    • findType

      default NameEnvironmentAnswer findType(char[] typeName, char[][] packageName)
      Description copied from interface: INameEnvironment
      Find a type named in the package . Answer the binary form of the type if it is known to be consistent. Otherwise, answer the compilation unit which defines the type or null if the type does not exist. The default package is indicated by char[0][]. It is known that the package containing the type exists. NOTE: This method can be used to find a member type using its internal name A$B, but the source file for A is answered if the binary file is inconsistent.
      Specified by:
      findType in interface INameEnvironment
    • isPackage

      default boolean isPackage(char[][] parentPackageName, char[] packageName)
      Description copied from interface: INameEnvironment
      Answer whether packageName is the name of a known subpackage inside the package parentPackageName. A top level package is found relative to null. The default package is always assumed to exist. For example: isPackage({{java}, {awt}}, {event}); isPackage(null, {java});
      Specified by:
      isPackage in interface INameEnvironment
    • findType

      NameEnvironmentAnswer findType(char[][] compoundName, char[] moduleName)
    • findType

      NameEnvironmentAnswer findType(char[] typeName, char[][] packageName, char[] moduleName)
      Answer a type identified by the given names. moduleName may be one of the special names from ModuleBinding (ANY, ANY_NAMED, UNNAMED).
    • getModulesDeclaringPackage

      char[][] getModulesDeclaringPackage(char[][] packageName, char[] moduleName)
    • getUniqueModulesDeclaringPackage

      default char[][] getUniqueModulesDeclaringPackage(char[][] packageName, char[] moduleName)
    • hasCompilationUnit

      boolean hasCompilationUnit(char[][] qualifiedPackageName, char[] moduleName, boolean checkCUs)
      Answer whether the given package (within the given module) contains any compilation unit.
      Parameters:
      qualifiedPackageName -
      checkCUs - - if true, check contained Compilation Units for a matching package declaration
      Returns:
      true iff the package contains at least one compilation unit.
    • getModule

      IModule getModule(char[] moduleName)
      Get the module with the given name, which must denote a named module.
    • getAllAutomaticModules

      char[][] getAllAutomaticModules()
    • applyModuleUpdates

      default void applyModuleUpdates(IUpdatableModule module, IUpdatableModule.UpdateKind kind)
      Ask the name environment to perform any updates (add-exports or add-reads) to the given module.
      Parameters:
      module - the compiler representation of the module to updates
      kind - selects what kind of updates should be performed
    • listPackages

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