fop 1.0

org.apache.fop.fonts
Class FontCache

java.lang.Object
  extended by 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
FontCache()
          Default constructor
 
Method Summary
 void addFont(EmbedFontInfo fontInfo)
          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.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 Detail

FontCache

public FontCache()
Default constructor

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()
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.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.URL url)
Retrieve the last modified date/time of a URL.

Parameters:
url - the URL
Returns:
the last modified date/time

fop 1.0

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