Class AbstractFileStore

    • Constructor Detail

      • AbstractFileStore

        public AbstractFileStore()
    • Method Detail

      • initialize

        protected void initialize​(java.io.InputStream xmlConfigStream)
      • buildReadPaths

        protected void buildReadPaths​(org.w3c.dom.Node dataFileStoreNode)
      • buildWritePaths

        protected void buildWritePaths​(org.w3c.dom.Node dataFileCacheNode)
      • buildLocationPath

        protected static java.lang.String buildLocationPath​(java.lang.String property,
                                                            java.lang.String append,
                                                            java.lang.String wwDir)
      • propertyToPath

        protected static java.lang.String propertyToPath​(java.lang.String propName)
      • determineAllUserLocation

        protected static java.lang.String determineAllUserLocation()
      • determineSingleUserLocation

        protected static java.lang.String determineSingleUserLocation()
      • getUserHomeDir

        protected static java.lang.String getUserHomeDir()
      • getLocations

        public java.util.List<? extends java.io.File> getLocations()
        Description copied from interface: FileStore
        Returns the locations that the file store will look for files.
        Specified by:
        getLocations in interface FileStore
        Returns:
        the list of locations the file store will search when a file is requested.
      • getWriteLocation

        public java.io.File getWriteLocation()
        Description copied from interface: FileStore
        Returns the location that additions to the file store are placed.
        Specified by:
        getWriteLocation in interface FileStore
        Returns:
        the location at which new entries are placed.
      • addLocation

        public void addLocation​(java.lang.String newPath,
                                boolean isInstall)
        Description copied from interface: FileStore
        Adds a location to search when files are requested from the file store.
        Specified by:
        addLocation in interface FileStore
        Parameters:
        newPath - the location to add. If the location already exists in the list of read locations its entry is removed and a new entry is added to the end of the search list.
        isInstall - indicates whether the location is an "installed data" location and therefore not subject to automatic removal of its contents.
      • addLocation

        public void addLocation​(int index,
                                java.lang.String newPath,
                                boolean isInstall)
        Description copied from interface: FileStore
        Adds a location to search when files are requested from the file store and specifies its location in the search order.
        Specified by:
        addLocation in interface FileStore
        Parameters:
        index - the location in the search list at which to add the new location.
        newPath - the location to add.
        isInstall - indicates whether the location is an installed-data location and therefore not subject to automatic removal of its contents.
      • removeLocation

        public void removeLocation​(java.lang.String path)
        Description copied from interface: FileStore
        Remove a specified read location from the file store. The current write location cannot be removed.
        Specified by:
        removeLocation in interface FileStore
        Parameters:
        path - the read location to remove.
      • isInstallLocation

        public boolean isInstallLocation​(java.lang.String path)
        Description copied from interface: FileStore
        Indicates whether a specified location is considered an installed-data location and therefore not subject to automatic removal of its contents.
        Specified by:
        isInstallLocation in interface FileStore
        Parameters:
        path - the path in question.
        Returns:
        true if the location is an installed-data location, otherwise false.
      • containsFile

        public boolean containsFile​(java.lang.String fileName)
        Description copied from interface: FileStore
        Indicates whether the file store contains a specified file.
        Specified by:
        containsFile in interface FileStore
        Parameters:
        fileName - the file in question.
        Returns:
        true if the file store contains the file, false if the file store does not contain the file or the specified path is null.
      • findFile

        public java.net.URL findFile​(java.lang.String fileName,
                                     boolean checkClassPath)
        Description copied from interface: FileStore
        Searches the file store for a specified file and returns a reference to it if it is.
        Specified by:
        findFile in interface FileStore
        Parameters:
        fileName - the name of the file to find
        checkClassPath - if true, the class path is first searched for the file, otherwise the class path is not searched unless it's one of the explicit paths in the cache search directories
        Returns:
        a handle to the requested file if it exists in the cache, otherwise null
        Throws:
        java.lang.IllegalArgumentException - if fileName is null
      • markFileUsed

        protected static void markFileUsed​(java.io.File file)
      • newFile

        public java.io.File newFile​(java.lang.String fileName)
        Description copied from interface: FileStore
        Creates a new, empty file in the file store.

        If the file store has no write location, the file is not created and null is returned.

        Specified by:
        newFile in interface FileStore
        Parameters:
        fileName - the name to give the newly created file
        Returns:
        a handle to the newly created file if it could be created and added to the file store, otherwise null
        Throws:
        java.lang.IllegalArgumentException - if fileName is null
      • removeFile

        public void removeFile​(java.net.URL url)
        Description copied from interface: FileStore
        Removes a file from the file store using the URL to the cached file.
        Specified by:
        removeFile in interface FileStore
        Parameters:
        url - the "file:" URL of the file to remove from the file store. Only files in the writable WorldWind disk cache or temp file directory are removed by this method.
        Throws:
        java.lang.IllegalArgumentException - if url is null
      • makeAbsoluteFile

        protected static java.io.File makeAbsoluteFile​(java.io.File file,
                                                       java.lang.String fileName)
      • makeAbsolutePath

        protected static java.lang.String makeAbsolutePath​(java.io.File dir,
                                                           java.lang.String fileName)
      • normalizeFileStoreName

        protected static java.lang.String normalizeFileStoreName​(java.lang.String fileName)
      • listFileNames

        public java.lang.String[] listFileNames​(java.lang.String pathName,
                                                FileStoreFilter filter)
        Description copied from interface: FileStore
        Returns an array of strings naming the files discovered directly under a specified file store path name. If the path name is null, files under the store root are searched. This returns null if the path does not exist in the store. Returned names are relative pointers to a file in the store; they are not necessarily a file system path.
        Specified by:
        listFileNames in interface FileStore
        Parameters:
        pathName - relative path in the file store to search, or null to search the entire file store.
        filter - a file filter.
        Returns:
        an array of file store names. Returns null if the path does not exist in the file store.
      • listAllFileNames

        public java.lang.String[] listAllFileNames​(java.lang.String pathName,
                                                   FileStoreFilter filter)
        Description copied from interface: FileStore
        Returns an array of strings naming the files discovered under a specified file store path name. If the path name is null, the entire file store will be searched. Otherwise the file store is recursively searched under the specified path name for files accepted by the specified filter, until the entire path tree is exhausted. This returns null if the path does not exist in the store. Returned names are relative pointers to a file in the store; they are not necessarily a file system path.
        Specified by:
        listAllFileNames in interface FileStore
        Parameters:
        pathName - relative path in the file store to search, or null to search the entire file store.
        filter - a file filter.
        Returns:
        an array of file store names. Returns null if the path does not exist in the file store.
      • listTopFileNames

        public java.lang.String[] listTopFileNames​(java.lang.String pathName,
                                                   FileStoreFilter filter)
        Description copied from interface: FileStore
        Returns an array of strings naming the files discovered under a specified file store path name. If the path name is null, the entire file store will be searched. Otherwise the file store is recursively searched under each branch of the the specified path name until a matching file is found, or that branch is exhausted. Unlike FileStore.listAllFileNames(String, FileStoreFilter), This has the effect of locating the top file name under each branch. This returns null if the path does not exist in the store. Returned names are relative pointers to a file in the store; they are not necessarily a file system path.
        Specified by:
        listTopFileNames in interface FileStore
        Parameters:
        pathName - relative path in the file store to search, or null to search the entire file store.
        filter - a file filter.
        Returns:
        an array of file store names. Returns null if the path does not exist in the file store.
      • doListFileNames

        protected java.lang.String[] doListFileNames​(java.lang.String pathName,
                                                     FileStoreFilter filter,
                                                     boolean recurse,
                                                     boolean exitBranchOnFirstMatch)
      • doListFileNames

        protected void doListFileNames​(AbstractFileStore.StoreLocation location,
                                       java.io.File dir,
                                       FileStoreFilter filter,
                                       boolean recurse,
                                       boolean exitBranchOnFirstMatch,
                                       java.util.Collection<java.lang.String> names)