Die AnnotationFontFactory
-Implementationen werden mit einer
FontAttributeSet
-Klasse abgefragt, die die entsprechenden Attribute / Werte des
Fonts beinhalten. Folgende Attribute werden von textbasierten Annotationen (siehe
Klasse TextAnnotation
) verwendet und entsprechend in der
FontAttributeSet
-Abfrage abgelegt:
Attribut FontName , ermittelt aus
getFontFace() |
Attribut Bold , wird nur definiert wenn Rückgabewert isBold() ==
true |
Attribut Italic , wird nur definiert wenn Rückgabewert
isItalic() == true |
Attribut Plain , wird nur definiert wenn Rückgabewert isBold()
== false und isItalic() == false |
Weitere Attribute werden nicht definiert / berücksichtigt; Gross-/Kleinschreibung bei der Fontnamensdefinition wird bei der Abfrage nicht beachtet.
Als weiterer Parameter wird eine Map
-Instanz mit der
AnnotationType
-Instanz der aktuellen Textannotation zur Verfügung gestellt.
Anhand der AnnotationType
-Instanz kann die Annotation identifiziert werden, zum
Beispiel die Klasse der Annotation (siehe auch Klassen Scopes
und
AnnotationType
):
public Font create(FontAttributeSet fontAttributeSet, Map<String, Object> scope) { Object scopeObject = scope.get(Scopes.SOURCE); if (scopeObject != null && scopeObject instanceof AnnotationType) { AnnotationType type = (AnnotationType) scopeObject; System.out.println(type.getAnnotationClass()); } ... }