Class FileSystemModuleLoader

  • All Implemented Interfaces:
    ModuleLoader

    public class FileSystemModuleLoader
    extends java.lang.Object
    implements ModuleLoader
    • Field Detail

      • searchPaths

        private final java.util.List<java.nio.file.Path> searchPaths
      • version

        private final Version version
      • parentScope

        private final Scope parentScope
      • loadedData

        private final java.util.concurrent.ConcurrentHashMap<Pair<java.nio.file.Path,​java.lang.String>,​FileSystemModuleLoader.TryOnce<com.fasterxml.jackson.databind.JsonNode>> loadedData
      • MAPPER

        private static final com.fasterxml.jackson.databind.ObjectMapper MAPPER
    • Constructor Detail

      • FileSystemModuleLoader

        public FileSystemModuleLoader​(Scope parentScope,
                                      Version version,
                                      java.nio.file.Path... searchPaths)
    • Method Detail

      • resolveModulePath

        private static final java.nio.file.Path resolveModulePath​(java.nio.file.Path searchPath,
                                                                  java.lang.String path)
      • loadModuleFile

        private static FileSystemModuleLoader.ModuleFile loadModuleFile​(java.nio.file.Path searchPath,
                                                                        java.lang.String path,
                                                                        java.lang.String ext)
                                                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • loadModuleActual

        private Module loadModuleActual​(java.nio.file.Path searchPath,
                                        java.lang.String path)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • resolvePathsFromImportDirective

        private Pair<java.util.List<java.nio.file.Path>,​java.lang.String> resolvePathsFromImportDirective​(Module caller,
                                                                                                                java.lang.String path,
                                                                                                                com.fasterxml.jackson.databind.JsonNode metadata)
                                                                                                         throws JsonQueryException
        Throws:
        JsonQueryException
      • loadDataActual

        private com.fasterxml.jackson.databind.JsonNode loadDataActual​(java.nio.file.Path searchPath,
                                                                       java.lang.String path)
                                                                throws java.io.IOException
        Throws:
        java.io.IOException