Package manifold.ext

Interface IExtensionClassProducer

  • All Superinterfaces:
    manifold.api.type.IFileConnected, manifold.api.type.ISelfCompiled, manifold.api.type.ITypeManifold
    All Known Implementing Classes:
    AbstractExtensionProducer

    public interface IExtensionClassProducer
    extends manifold.api.type.ITypeManifold
    A type manifold implements this interface if it produces extension classes. Normally extension classes are provided directly as source files. However it may be necessary for a type manifold to produce them dynamically based on information provided elsewhere. This interface serves as a means for the ExtensionManifold to ask this type manifold what types it extends and so forth.
    • Field Summary

      • Fields inherited from interface manifold.api.type.ITypeManifold

        ARG_DUMP_SOURCE
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      Set<String> getExtendedTypes()
      The set of extension classes this type manifold produces.
      Set<String> getExtendedTypesForFile​(manifold.api.fs.IFile file)
      The set of classes extended via {$code file}.
      Set<String> getExtensionClasses​(String fqn)
      The subset of extension classes this type manifold produces that extend fqn
      boolean isExtendedType​(String fqn)
      Does this type manifold produce extension class[es] for fqn?
      • Methods inherited from interface manifold.api.type.IFileConnected

        getTypesForFile, handlesFile, handlesFileExtension, isFileBacked, refreshedFile
      • Methods inherited from interface manifold.api.type.ISelfCompiled

        compile, isSelfCompile, parse
      • Methods inherited from interface manifold.api.type.ITypeManifold

        accept, clear, contribute, enterPostJavaCompilation, findFilesForType, getAllTypeNames, getClassType, getContributorKind, getModule, getPackage, getSourceKind, getTypeNames, init, isPackage, isTopLevelType, isType
    • Method Detail

      • isExtendedType

        boolean isExtendedType​(String fqn)
        Does this type manifold produce extension class[es] for fqn?
        Parameters:
        fqn - The fully qualified name of a type for which this manifold may produce an extension class
        Returns:
        True if this manifold produces extension class[es] for fqn
      • getExtensionClasses

        Set<String> getExtensionClasses​(String fqn)
        The subset of extension classes this type manifold produces that extend fqn
        Parameters:
        fqn - The fully qualified name of a potentially extended type
        Returns:
        The subset of extension classes this type manifold produces that extend fqn
      • getExtendedTypes

        Set<String> getExtendedTypes()
        The set of extension classes this type manifold produces.
      • getExtendedTypesForFile

        Set<String> getExtendedTypesForFile​(manifold.api.fs.IFile file)
        The set of classes extended via {$code file}.
        Parameters:
        file - A resource file associated with this class producer