org.apache.fop.fonts

## Class FontCache

- java.lang.Object
- - org.apache.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 and Description
    `FontCache()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addFont(EmbedFontInfo fontInfo, InternalResourceResolver resourceResolver)` Adds a font info to cache
    `void` | `clear()` Clears font cache
    `boolean` | `containsFont(EmbedFontInfo fontInfo)` is this font info in the cache?
    `boolean` | `containsFont(java.lang.String embedUrl)` is this font 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)

    - #### 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(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,
                              InternalResourceResolver resourceResolver)

      Adds a font info to cache
      Parameters:
        `fontInfo` - font info

    - #### 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

Copyright 1999-2022 The Apache Software Foundation. All Rights Reserved.