Class DarkJavaTypeManifold

  • All Implemented Interfaces:
    manifold.api.service.IPluginHost, manifold.api.service.IService, manifold.api.type.IFileConnected, manifold.api.type.ISelfCompiled, manifold.api.type.ITypeManifold

    public class DarkJavaTypeManifold
    extends manifold.api.type.JavaTypeManifold<manifold.api.darkj.Model>
    Dark Java is dark because it's Java, yet it can't be "seen" at compile-time. It satisfies the use-case where you need to write Java software against a system that materializes only at runtime. For instance, say your code must target different versions of the same API. You can use Dark Java to write an alternative version of the parts of your software that support an older (or newer) API.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class manifold.api.type.ResourceFileTypeManifold

        manifold.api.type.ResourceFileTypeManifold.CacheClearer
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static Set<String> FILE_EXTENSIONS  
      • Fields inherited from interface manifold.api.type.ITypeManifold

        ARG_DUMP_SOURCE
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean accept​(manifold.api.host.IModule module)  
      protected String contribute​(JavaFileManager.Location location, String topLevelFqn, boolean genStubs, String existing, manifold.api.darkj.Model model, DiagnosticListener<JavaFileObject> errorHandler)  
      boolean handlesFileExtension​(String fileExtension)  
      void init​(manifold.api.host.IModule module)  
      boolean isInnerType​(String topLevel, String relativeInner)  
      • Methods inherited from class manifold.api.type.JavaTypeManifold

        getClassType, getContributorKind, getSourceKind
      • Methods inherited from class manifold.api.type.ResourceFileTypeManifold

        clear, contribute, createCacheClearer, findFilesForType, findTopLevelFqn, getAdditionalTypes, getAllTypeNames, getContent, getModel, getModule, getPackage, getPeripheralTypes, getTypeNameForFile, getTypeNames, getTypesForFile, handlesFile, init, isDuplicate, isFileBacked, isPackage, isTopLevelType, isType, refreshedFile
      • Methods inherited from class manifold.api.service.BaseService

        doInit, doUninit, init, isInited, uninit
      • Methods inherited from interface manifold.api.service.IPluginHost

        getInterface
      • Methods inherited from interface manifold.api.type.ISelfCompiled

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

        enterPostJavaCompilation
    • Field Detail

      • FILE_EXTENSIONS

        public static final Set<String> FILE_EXTENSIONS
    • Constructor Detail

      • DarkJavaTypeManifold

        public DarkJavaTypeManifold()
    • Method Detail

      • accept

        public boolean accept​(manifold.api.host.IModule module)
      • init

        public void init​(manifold.api.host.IModule module)
        Specified by:
        init in interface manifold.api.type.ITypeManifold
        Overrides:
        init in class manifold.api.type.ResourceFileTypeManifold<manifold.api.darkj.Model>
      • handlesFileExtension

        public boolean handlesFileExtension​(String fileExtension)
      • isInnerType

        public boolean isInnerType​(String topLevel,
                                   String relativeInner)
        Specified by:
        isInnerType in class manifold.api.type.ResourceFileTypeManifold<manifold.api.darkj.Model>