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());
}
...
}

