public class ScribeIndex extends Object
Manages a collection of property scribes (aka "marshallers" or "serializers") to use when reading or writing a vCard. The same instance of this object can be re-used across multiple vCard reader/writer objects. This is useful if you have custom scribe classes defined, as it allows you to only define them once instead of each time a vCard reader/writer object is created.
Example:
//init the index ScribeIndex index = new ScribeIndex(); index.register(new CustomPropertyScribe()); index.register(new AnotherCustomPropertyScribe()); //inject the ScribeIndex into a plain-text vCard reader class and read the vCard data stream try (VCardReader vcardReader = new VCardReader(...)) { vcardReader.setScribeIndex(index); List<VCard> vcards = new ArrayList<VCard>(); VCard vcard; while ((vcards = vcardReader.readNext()) != null) { vcards.add(vcard); } } //inject the same ScribeIndex instance into a jCard writer and write the vCards try (JCardWriter jcardWriter = new JCardWriter(...)) { jcardWriter.setScribeIndex(index); for (VCard vcard : vcards) { jcardWriter.write(vcard); } }
Constructor and Description |
---|
ScribeIndex() |
Modifier and Type | Method and Description |
---|---|
VCardPropertyScribe<? extends VCardProperty> |
getPropertyScribe(Class<? extends VCardProperty> clazz)
Gets a property scribe by class.
|
VCardPropertyScribe<? extends VCardProperty> |
getPropertyScribe(QName qname)
Gets a property scribe by XML local name and namespace.
|
VCardPropertyScribe<? extends VCardProperty> |
getPropertyScribe(String propertyName)
Gets a property scribe by name.
|
VCardPropertyScribe<? extends VCardProperty> |
getPropertyScribe(VCardProperty property)
Gets the appropriate property scribe for a given property instance.
|
boolean |
hasPropertyScribe(VCardProperty property)
Determines if a scribe exists for a given property instance.
|
void |
register(VCardPropertyScribe<? extends VCardProperty> scribe)
Registers a property scribe.
|
void |
unregister(VCardPropertyScribe<? extends VCardProperty> scribe)
Unregisters a property scribe.
|
public ScribeIndex()
public VCardPropertyScribe<? extends VCardProperty> getPropertyScribe(String propertyName)
propertyName
- the property name (case-insensitive, e.g. "FN")public boolean hasPropertyScribe(VCardProperty property)
property
- the propertypublic VCardPropertyScribe<? extends VCardProperty> getPropertyScribe(Class<? extends VCardProperty> clazz)
clazz
- the property classpublic VCardPropertyScribe<? extends VCardProperty> getPropertyScribe(VCardProperty property)
property
- the property instancepublic VCardPropertyScribe<? extends VCardProperty> getPropertyScribe(QName qname)
qname
- the XML local name and namespaceXmlScribe
if not foundpublic void register(VCardPropertyScribe<? extends VCardProperty> scribe)
scribe
- the scribe to registerpublic void unregister(VCardPropertyScribe<? extends VCardProperty> scribe)
scribe
- the scribe to unregisterCopyright © 2012–2023 Michael Angstadt. All rights reserved.