Caching von FontAttributes mit dem FontAttributesCache

Gültig ab jadice documentplatform 5.5.0.2

Dieser Artikel beschreibt, wie Eigenschaften von Fonts nach dem Einlesen in einem Cache gespeichert werden können.

Um zu vermeinden, dass FontAttributes bei jedem Anwendungsstart erneut eingelesen werden müssen, ist es möglich, diese Informationen in einem Cache zu speichern und beim Aufbau des FontManagers daraus zu laden.

Somit können nach dem intialen Befüllen des Cache die dort hinterlegten Informationen zum Beispiel lokal persistiert werden und stehen beim nächsten Programmstart schnell zur Verfügung.

Eine beispielhafte Implementierung eines solchen Cache findet sich in der Klasse com.levigo.jadice.demo.font.attribute.FileFontAttributesCache. In dieser Implementierung wird der Cache verwendet, um Pfad und FontAttributes von Schriftarten in einer Datei zu persistieren.
Der Cache ist jedoch nicht darauf beschränkt, Dateipfade als Schlüsselwert für FontAttributes zu verwenden. Vielmehr können Objekte aller Klassen, die das Serializable-Interface implementieren als Schlüsselwert verwendet werden. Damit ist es beispielsweise auch möglich die Attribute von Schriftarten, die in einer zentralen Datenbank hinterlegt sind, in einem Cache zu speichern.
Ebenso müssen die Cache-Inhalte selbst nicht in einer Datei abgelegt werden. Auch hier ist es möglich, den Cache-Inhalt zum Beispiel in einer Datenbank abzulegen.

Die wiederhergestellten Inhalte des Cache können in einem FontManagerBuilder über die Methode with(Iterable<FontResource> fontResource) eingebunden werden und stehen anschließend im so erzeugten FontManager zur Verfügung.

Ein Beispiel zum caching der Systemschriftarten findet sich in der Klasse com.levigo.jadice.demo.font.attribute.CachedSystemFonts im Modul jadice-core-demo. Als Cache-Implementierung wird hier der FileFontAttributesCache im selben Paket verwendet.