Class FontCache

java.lang.Object
org.docx4j.fonts.fop.fonts.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()
    Default constructor
  • Method Summary

    Modifier and Type Method Description
    void addFont​(EmbedFontInfo fontInfo)
    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.docx4j.fonts.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.URL url)
    Retrieve the last modified date/time of a URL.
    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()
    Reads the default font cache file and returns its contents.
    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()
    Writes the font cache to disk.
    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 Details

    • FontCache

      public FontCache()
      Default constructor
  • Method Details

    • 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()
      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)
    • save

      public void save() throws FOPException
      Writes the font cache to disk.
      Throws:
      FOPException - fop exception
    • 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
    • addFont

      public void addFont​(EmbedFontInfo fontInfo)
      Adds a font info to cache
      Parameters:
      fontInfo - font info
    • getFontFile

      public org.docx4j.fonts.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.URL url)
      Retrieve the last modified date/time of a URL.
      Parameters:
      url - the URL
      Returns:
      the last modified date/time