Class FileManagerImpl

  • All Implemented Interfaces:
    FileManager

    public class FileManagerImpl
    extends java.lang.Object
    implements FileManager
    FileManager A FileManager provides access to named file-like resources by opening InputStreams to things in the filing system, by URL (http: and file:) and found by the classloader. It can also load RDF data from such a system resource into an existing model or create a new (Memory-based) model. There is a global FileManager which provide uniform access to system resources: applications may also create specialised FileManagers. A FileManager contains a list of location functions to try: the global FileManger has one LocatorFile, one LocatorClassLoader and one LocatorURL Main operations: *
    • loadModel, readModel : URI to model
    • open, openNoMap : URI to input stream
    • mapURI : map URI to another by LocationMapper
    Utilities:
    • readWholeFileAsUTF8
    • optional caching of models
    A FileManager works in conjunction with a LocationMapper. A LocationMapper is a set of alternative locations for system resources and a set of alternative prefix locations. For example, a local copy of a common RDF dataset may be used whenever the usual URL is used by the application. The LocatorFile also supports the idea of "current directory".
    See Also:
    LocationMapper, FileUtils
    • Method Detail

      • get

        public static FileManager get()
        Get the global file manager.
        Returns:
        the global file manager
      • setGlobalFileManager

        public static void setGlobalFileManager​(FileManager globalFileManager)
        Set the global file manager (as returned by get()) If called before any call to get(), then the usual default filemanager is not created
        Parameters:
        globalFileManager -
      • makeGlobal

        public static FileManager makeGlobal()
        Create a "standard" FileManager.
      • locators

        public java.util.Iterator<Locator> locators()
        Return an iterator over all the handlers
        Specified by:
        locators in interface FileManager
      • addLocator

        public void addLocator​(Locator loc)
        Add a locator to the end of the locators list
        Specified by:
        addLocator in interface FileManager
      • addLocatorFile

        @Deprecated
        public void addLocatorFile()
        Deprecated.
        Add a file locator
        Specified by:
        addLocatorFile in interface FileManager
      • addLocatorFile

        @Deprecated
        public void addLocatorFile​(java.lang.String dir)
        Deprecated.
        Add a file locator which uses dir as its working directory
        Specified by:
        addLocatorFile in interface FileManager
      • addLocatorClassLoader

        @Deprecated
        public void addLocatorClassLoader​(java.lang.ClassLoader cLoad)
        Deprecated.
        Add a class loader locator
        Specified by:
        addLocatorClassLoader in interface FileManager
      • addLocatorURL

        @Deprecated
        public void addLocatorURL()
        Deprecated.
        Add a URL locator
        Specified by:
        addLocatorURL in interface FileManager
      • addLocatorZip

        @Deprecated
        public void addLocatorZip​(java.lang.String zfn)
        Deprecated.
        Add a zip file locator
        Specified by:
        addLocatorZip in interface FileManager
      • resetCache

        public void resetCache()
        Reset the model cache
        Specified by:
        resetCache in interface FileManager
      • setModelCaching

        public void setModelCaching​(boolean state)
        Change the state of model cache : does not clear the cache
        Specified by:
        setModelCaching in interface FileManager
      • isCachingModels

        public boolean isCachingModels()
        return whether caching is on of off
        Specified by:
        isCachingModels in interface FileManager
      • getFromCache

        public Model getFromCache​(java.lang.String filenameOrURI)
        Read out of the cache - return null if not in the cache
        Specified by:
        getFromCache in interface FileManager
      • hasCachedModel

        public boolean hasCachedModel​(java.lang.String filenameOrURI)
        Specified by:
        hasCachedModel in interface FileManager
      • loadModelInternal

        public Model loadModelInternal​(java.lang.String filenameOrURI)
        Load a model from a file (local or remote). This operation may attempt content negotiation for http URLs.
        Specified by:
        loadModelInternal in interface FileManager
        Parameters:
        filenameOrURI - The filename or a URI (file:, http:)
        Returns:
        a new model
        Throws:
        JenaException - if there is syntax error in file.
      • loadModel

        public Model loadModel​(java.lang.String filenameOrURI,
                               java.lang.String rdfSyntax)
        Load a model from a file (local or remote). URI is the base for reading the model.
        Specified by:
        loadModel in interface FileManager
        Parameters:
        filenameOrURI - The filename or a URI (file:, http:)
        rdfSyntax - RDF Serialization syntax.
        Returns:
        a new model
        Throws:
        JenaException - if there is syntax error in file.
      • loadModel

        public Model loadModel​(java.lang.String filenameOrURI,
                               java.lang.String baseURI,
                               java.lang.String rdfSyntax)
        Load a model from a file (local or remote).
        Specified by:
        loadModel in interface FileManager
        Parameters:
        filenameOrURI - The filename or a URI (file:, http:)
        baseURI - Base URI for loading the RDF model.
        rdfSyntax - RDF Serialization syntax.
        Returns:
        a new model
        Throws:
        JenaException - if there is syntax error in file.
      • readModelInternal

        public Model readModelInternal​(Model model,
                                       java.lang.String filenameOrURI)
        Read a file of RDF into a model. Guesses the syntax of the file based on filename extension, defaulting to RDF/XML.
        Specified by:
        readModelInternal in interface FileManager
        Parameters:
        model -
        filenameOrURI -
        Returns:
        The model or null, if there was an error.
        Throws:
        JenaException - if there is syntax error in file.
      • readModel

        public Model readModel​(Model model,
                               java.lang.String filenameOrURI,
                               java.lang.String rdfSyntax)
        Read a file of RDF into a model.
        Specified by:
        readModel in interface FileManager
        Parameters:
        model -
        filenameOrURI -
        rdfSyntax - RDF Serialization syntax.
        Returns:
        The model or null, if there was an error.
        Throws:
        JenaException - if there is syntax error in file.
      • readModel

        public Model readModel​(Model model,
                               java.lang.String filenameOrURI,
                               java.lang.String baseURI,
                               java.lang.String syntax)
        Read a file of RDF into a model.
        Specified by:
        readModel in interface FileManager
        Parameters:
        model -
        filenameOrURI -
        baseURI -
        syntax -
        Returns:
        The model
        Throws:
        JenaException - if there is syntax error in file.
      • open

        public java.io.InputStream open​(java.lang.String filenameOrURI)
        Open a file using the locators of this FileManager
        Specified by:
        open in interface FileManager
      • mapURI

        public java.lang.String mapURI​(java.lang.String filenameOrURI)
        Apply the mapping of a filename or URI
        Specified by:
        mapURI in interface FileManager
      • readWholeFileAsUTF8

        public java.lang.String readWholeFileAsUTF8​(java.io.InputStream in)
        Slurp up a whole file
        Specified by:
        readWholeFileAsUTF8 in interface FileManager
      • readWholeFileAsUTF8

        public java.lang.String readWholeFileAsUTF8​(java.lang.String filename)
        Slurp up a whole file: map filename as necessary
        Specified by:
        readWholeFileAsUTF8 in interface FileManager
      • openNoMap

        public java.io.InputStream openNoMap​(java.lang.String filenameOrURI)
        Open a file using the locators of this FileManager but without location mapping
        Specified by:
        openNoMap in interface FileManager
      • openNoMapOrNull

        public TypedStream openNoMapOrNull​(java.lang.String filenameOrURI)
        Open a file using the locators of this FileManager but without location mapping. Return null if not found
        Specified by:
        openNoMapOrNull in interface FileManager