Class FontCache

java.lang.Object
org.apache.fop.fonts.FontCache
All Implemented Interfaces:
Serializable

public final class FontCache extends Object implements Serializable
Fop cache (currently only used for font info caching)
See Also:
  • Constructor Details

    • FontCache

      public FontCache()
  • Method Details

    • getDefaultCacheFile

      public static 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(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
      Deprecated.
      use saveTo(File) instead
      Writes the font cache to disk.
      Throws:
      FOPException - fop exception
    • saveTo

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

      protected static 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(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 File getFileFromUrls(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, InternalResourceResolver resourceResolver)
      Adds a font info to cache
      Parameters:
      fontInfo - font info
    • getFontFile

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

      public EmbedFontInfo[] getFontInfos(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(String embedUrl)
      removes font from cache
      Parameters:
      embedUrl - embed url
    • isFailedFont

      public boolean isFailedFont(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(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(URI uri)
      Retrieve the last modified date/time of a URI.
      Parameters:
      uri - the URI
      Returns:
      the last modified date/time