Class LocalizedResource


  • public class LocalizedResource
    extends LocallyCachedBlob
    Represents a resource that is localized on the supervisor. A localized resource has a .current symlink to the current version file which is named filename.{current version}. There is also a filename.version which contains the latest version.
    • Method Detail

      • setSize

        protected void setSize​(long size)
      • getLocalVersion

        public long getLocalVersion()
        Description copied from class: LocallyCachedBlob
        Get the version of the blob cached locally. If the version is unknown or it has not been downloaded NOT_DOWNLOADED_VERSION should be returned. PRECONDITION: this can only be called with a lock on this instance held.
        Specified by:
        getLocalVersion in class LocallyCachedBlob
      • commitNewVersion

        protected void commitNewVersion​(long version)
                                 throws IOException
        Description copied from class: LocallyCachedBlob
        Commit the new version and make it available for the end user. PRECONDITION: uncompressToTempLocationIfNeeded will have been called. PRECONDITION: this can only be called with a lock on this instance held.
        Specified by:
        commitNewVersion in class LocallyCachedBlob
        Parameters:
        version - the version of the blob to commit.
        Throws:
        IOException
      • cleanupOrphanedData

        public void cleanupOrphanedData()
                                 throws IOException
        Description copied from class: LocallyCachedBlob
        Clean up any temporary files. This will be called after updating a blob, either successfully or if an error has occured. The goal is to find any files that may be left over and remove them so space is not leaked. PRECONDITION: this can only be called with a lock on this instance held.
        Specified by:
        cleanupOrphanedData in class LocallyCachedBlob
        Throws:
        IOException
      • completelyRemove

        public void completelyRemove()
                              throws IOException
        Description copied from class: LocallyCachedBlob
        Completely remove anything that is cached locally for this blob and all tracking files also stored for it. This will be called after the blob was determined to no longer be needed in the cache. PRECONDITION: this can only be called with a lock on this instance held.
        Specified by:
        completelyRemove in class LocallyCachedBlob
        Throws:
        IOException
      • getSizeOnDisk

        public long getSizeOnDisk()
        Description copied from class: LocallyCachedBlob
        Get the amount of disk space that is used by this blob. If the blob is uncompressed it should be the sum of the space used by all of the uncompressed files. In general this will not be called with any locks held so it is a good idea to cache it and updated it when committing a new version.
        Specified by:
        getSizeOnDisk in class LocallyCachedBlob
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object