Class FontCache

  • All Implemented Interfaces:
    java.io.Serializable

    public final class FontCache
    extends java.lang.Object
    implements java.io.Serializable
    Fop cache (currently only used for font info caching)
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      FontCache()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      void addFont​(EmbedFontInfo fontInfo, InternalResourceResolver resourceResolver)
      Adds a font info to cache
      void clear()
      Clears font cache
      boolean containsFont​(java.lang.String embedUrl)
      is this font in the cache?
      boolean containsFont​(EmbedFontInfo fontInfo)
      is this font info in the cache?
      protected static java.lang.String getCacheKey​(EmbedFontInfo fontInfo)
      creates a key given a font info for the font mapping
      static java.io.File getDefaultCacheFile​(boolean forWriting)
      Returns the default font cache file.
      static java.io.File getFileFromUrls​(java.lang.String[] urls)
      Tries to identify a File instance from an array of URLs.
      org.apache.fop.fonts.FontCache.CachedFontFile getFontFile​(java.lang.String embedUrl)
      Returns a font from the cache.
      EmbedFontInfo[] getFontInfos​(java.lang.String embedUrl, long lastModified)
      Returns the EmbedFontInfo instances belonging to a font file.
      static long getLastModified​(java.net.URI uri)
      Retrieve the last modified date/time of a URI.
      boolean hasChanged()
      cache has been updated since it was read
      boolean isFailedFont​(java.lang.String embedUrl, long lastModified)
      has this font previously failed to load?
      static FontCache load()
      Deprecated.
      use loadFrom(File) instead
      static FontCache loadFrom​(java.io.File cacheFile)
      Reads a font cache file and returns its contents.
      void registerFailedFont​(java.lang.String embedUrl, long lastModified)
      Registers a failed font with the cache
      void removeFont​(java.lang.String embedUrl)
      removes font from cache
      void save()
      Deprecated.
      use saveTo(File) instead
      void saveTo​(java.io.File cacheFile)
      Writes the font cache to disk.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • FontCache

        public FontCache()
    • Method Detail

      • getDefaultCacheFile

        public static java.io.File getDefaultCacheFile​(boolean forWriting)
        Returns the default font cache file.
        Parameters:
        forWriting - true if the user directory should be created
        Returns:
        the default font cache file
      • load

        public static FontCache load()
        Deprecated.
        use loadFrom(File) instead
        Reads the default font cache file and returns its contents.
        Returns:
        the font cache deserialized from the file (or null if no cache file exists or if it could not be read)
      • loadFrom

        public static FontCache loadFrom​(java.io.File cacheFile)
        Reads a font cache file and returns its contents.
        Parameters:
        cacheFile - the cache file
        Returns:
        the font cache deserialized from the file (or null if no cache file exists or if it could not be read)
      • saveTo

        public void saveTo​(java.io.File cacheFile)
                    throws FOPException
        Writes the font cache to disk.
        Parameters:
        cacheFile - the file to write to
        Throws:
        FOPException - fop exception
      • getCacheKey

        protected static java.lang.String getCacheKey​(EmbedFontInfo fontInfo)
        creates a key given a font info for the font mapping
        Parameters:
        fontInfo - font info
        Returns:
        font cache key
      • hasChanged

        public boolean hasChanged()
        cache has been updated since it was read
        Returns:
        if this cache has changed
      • containsFont

        public boolean containsFont​(java.lang.String embedUrl)
        is this font in the cache?
        Parameters:
        embedUrl - font info
        Returns:
        boolean
      • containsFont

        public boolean containsFont​(EmbedFontInfo fontInfo)
        is this font info in the cache?
        Parameters:
        fontInfo - font info
        Returns:
        font
      • getFileFromUrls

        public static java.io.File getFileFromUrls​(java.lang.String[] urls)
        Tries to identify a File instance from an array of URLs. If there's no file URL in the array, the method returns null.
        Parameters:
        urls - array of possible font urls
        Returns:
        file font file
      • getFontFile

        public org.apache.fop.fonts.FontCache.CachedFontFile getFontFile​(java.lang.String embedUrl)
        Returns a font from the cache.
        Parameters:
        embedUrl - font info
        Returns:
        CachedFontFile object
      • getFontInfos

        public EmbedFontInfo[] getFontInfos​(java.lang.String embedUrl,
                                            long lastModified)
        Returns the EmbedFontInfo instances belonging to a font file. If the font file was modified since it was cached the entry is removed and null is returned.
        Parameters:
        embedUrl - the font URL
        lastModified - the last modified date/time of the font file
        Returns:
        the EmbedFontInfo instances or null if there's no cached entry or if it is outdated
      • removeFont

        public void removeFont​(java.lang.String embedUrl)
        removes font from cache
        Parameters:
        embedUrl - embed url
      • isFailedFont

        public boolean isFailedFont​(java.lang.String embedUrl,
                                    long lastModified)
        has this font previously failed to load?
        Parameters:
        embedUrl - embed url
        lastModified - last modified
        Returns:
        whether this is a failed font
      • registerFailedFont

        public void registerFailedFont​(java.lang.String embedUrl,
                                       long lastModified)
        Registers a failed font with the cache
        Parameters:
        embedUrl - embed url
        lastModified - time last modified
      • clear

        public void clear()
        Clears font cache
      • getLastModified

        public static long getLastModified​(java.net.URI uri)
        Retrieve the last modified date/time of a URI.
        Parameters:
        uri - the URI
        Returns:
        the last modified date/time