Package org.apache.fop.fonts
Class FontCache
java.lang.Object
org.apache.fop.fonts.FontCache
- All Implemented Interfaces:
Serializable
Fop cache (currently only used for font info caching)
- See Also:
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
has this cache been changed since it was last read?private final boolean[]
change lockprivate static final String
font cache file pathmapping of font url -> file modified date (for all fonts that have failed to load)private Map
<String, FontCache.CachedFontFile> master mapping of font url -> font info.private static final String
FOP's user directory nameprivate static org.apache.commons.logging.Log
logging instanceprivate static final long
Serialization Version UID. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addFont
(EmbedFontInfo fontInfo, InternalResourceResolver resourceResolver) Adds a font info to cachevoid
clear()
Clears font cacheboolean
containsFont
(String embedUrl) is this font in the cache?boolean
containsFont
(EmbedFontInfo fontInfo) is this font info in the cache?protected static String
getCacheKey
(EmbedFontInfo fontInfo) creates a key given a font info for the font mappingstatic 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.getFontFile
(String embedUrl) Returns a font from the cache.private Map
<String, FontCache.CachedFontFile> 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.private static File
private static File
boolean
cache has been updated since it was readboolean
isFailedFont
(String embedUrl, long lastModified) has this font previously failed to load?static FontCache
load()
Deprecated.static FontCache
Reads a font cache file and returns its contents.private void
void
registerFailedFont
(String embedUrl, long lastModified) Registers a failed font with the cachevoid
removeFont
(String embedUrl) removes font from cachevoid
save()
Deprecated.usesaveTo(File)
insteadvoid
Writes the font cache to disk.private static File
toDirectory
(String path)
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization Version UID. Change this value if you want to make sure the user's cache file is purged after an update.- See Also:
-
log
private static org.apache.commons.logging.Log loglogging instance -
FOP_USER_DIR
FOP's user directory name- See Also:
-
DEFAULT_CACHE_FILENAME
font cache file path- See Also:
-
changed
private transient boolean changedhas this cache been changed since it was last read? -
changeLock
private final boolean[] changeLockchange lock -
fontfileMap
master mapping of font url -> font info. This needs to be a list, since a TTC file may contain more than 1 font. -
failedFontMap
mapping of font url -> file modified date (for all fonts that have failed to load)
-
-
Constructor Details
-
FontCache
public FontCache()
-
-
Method Details
-
readObject
- Throws:
ClassNotFoundException
IOException
-
getUserHome
-
getTempDirectory
-
toDirectory
-
getDefaultCacheFile
Returns the default font cache file.- Parameters:
forWriting
- true if the user directory should be created- Returns:
- the default font cache file
-
load
Deprecated.useloadFrom(File)
insteadReads 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
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
Deprecated.usesaveTo(File)
insteadWrites the font cache to disk.- Throws:
FOPException
- fop exception
-
saveTo
Writes the font cache to disk.- Parameters:
cacheFile
- the file to write to- Throws:
FOPException
- fop exception
-
getCacheKey
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
is this font in the cache?- Parameters:
embedUrl
- font info- Returns:
- boolean
-
containsFont
is this font info in the cache?- Parameters:
fontInfo
- font info- Returns:
- font
-
getFileFromUrls
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
-
getFontFileMap
-
addFont
Adds a font info to cache- Parameters:
fontInfo
- font info
-
getFontFile
Returns a font from the cache.- Parameters:
embedUrl
- font info- Returns:
- CachedFontFile object
-
getFontInfos
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 URLlastModified
- 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
removes font from cache- Parameters:
embedUrl
- embed url
-
isFailedFont
has this font previously failed to load?- Parameters:
embedUrl
- embed urllastModified
- last modified- Returns:
- whether this is a failed font
-
registerFailedFont
Registers a failed font with the cache- Parameters:
embedUrl
- embed urllastModified
- time last modified
-
getFailedFontMap
-
clear
public void clear()Clears font cache -
getLastModified
Retrieve the last modified date/time of a URI.- Parameters:
uri
- the URI- Returns:
- the last modified date/time
-
loadFrom(File)
instead