org.apache.fop.fonts

## 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:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`FontCache()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
`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(String embedUrl)` is this font in the cache?
`protected static String` `getCacheKey(EmbedFontInfo fontInfo)` creates a key given a font info for the font mapping
`static File` `getDefaultCacheFile(boolean forWriting)` Returns the default font cache file.
`static File` `getFileFromUrls(String[] urls)` Tries to identify a File instance from an array of URLs.
`org.apache.fop.fonts.FontCache.CachedFontFile` `getFontFile(String embedUrl)` Returns a font from the cache.
`EmbedFontInfo[]` `getFontInfos(String embedUrl, long lastModified)` Returns the EmbedFontInfo instances belonging to a font file.
`static long` `getLastModified(URI uri)` Retrieve the last modified date/time of a URI.
`boolean` `hasChanged()` cache has been updated since it was read
`boolean` `isFailedFont(String embedUrl, long lastModified)` has this font previously failed to load?
`static FontCache` `load()` Deprecated. use `loadFrom(File)` instead
`static FontCache` `loadFrom(File cacheFile)` Reads a font cache file and returns its contents.
`void` `registerFailedFont(String embedUrl, long lastModified)` Registers a failed font with the cache
`void` `removeFont(String embedUrl)` removes font from cache
`void` `save()` Deprecated. use `saveTo(File)` instead
`void` `saveTo(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 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