Package net.ontopia.topicmaps.xml
Class AbstractTopicMapExporter
- java.lang.Object
-
- net.ontopia.topicmaps.xml.AbstractTopicMapExporter
-
- Direct Known Subclasses:
TMXMLWriter
,XTM2TopicMapExporter
,XTMTopicMapExporter
public abstract class AbstractTopicMapExporter extends Object
INTERNAL: Abstract class providing common operations used by XML exporters.
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
add_ids
INTERNAL: Whether or not IDs should be added to all elements.protected static String
EMPTY_LOCALNAME
protected static String
EMPTY_NAMESPACE
protected Predicate
filter
-
Constructor Summary
Constructors Constructor Description AbstractTopicMapExporter()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addId(AttributesImpl atts, TMObjectIF tmobject)
protected Collection
filterCollection(Collection unfiltered)
Filter a whole collection of objects.protected boolean
filterOk(Object unfiltered)
INTERNAL: Filter a single object.String
getElementId(TMObjectIF tmobject)
INTERNAL: Method used to extract the XTM element id from a topic map object when a source locator relative to the topic map base address exists.protected boolean
isValidXMLId(String id)
INTERNAL: Used to test whether the ID is a syntactically valid XML ID.static boolean
mayCollide(String id)
INTERNAL: Used to find out whether this ID may collide with IDs produced from object IDs.void
setFilter(Predicate filter)
PUBLIC: Sets the filter that decides which topic map constructs are accepted in the exported TM/XML.
-
-
-
Field Detail
-
EMPTY_NAMESPACE
protected static final String EMPTY_NAMESPACE
- See Also:
- Constant Field Values
-
EMPTY_LOCALNAME
protected static final String EMPTY_LOCALNAME
- See Also:
- Constant Field Values
-
filter
protected Predicate filter
-
add_ids
protected boolean add_ids
INTERNAL: Whether or not IDs should be added to all elements.
-
-
Method Detail
-
setFilter
public void setFilter(Predicate filter)
PUBLIC: Sets the filter that decides which topic map constructs are accepted in the exported TM/XML. Uses 'filter' to identify individual topic constructs as allowed or disallowed. TM constructs that depend on the disallowed topics are also disallowed.- Parameters:
filter
- Places constraints on individual topicmap constructs.- Since:
- 3.2
-
filterCollection
protected Collection filterCollection(Collection unfiltered)
Filter a whole collection of objects.- Parameters:
unfiltered
- The objects to filter.- Returns:
- A new collection containing all objects accepted by the filter, or if this.filter is null, returns the original collection.
-
filterOk
protected boolean filterOk(Object unfiltered)
INTERNAL: Filter a single object.- Parameters:
unfiltered
- The object to filter.- Returns:
- True if the object is accepted by the filter or the filter is null. False otherwise.
-
addId
protected void addId(AttributesImpl atts, TMObjectIF tmobject)
-
getElementId
public String getElementId(TMObjectIF tmobject)
INTERNAL: Method used to extract the XTM element id from a topic map object when a source locator relative to the topic map base address exists.This method is critical because we want to preserve the connection between subject indicators used to reify local objects, and at the same time we wish to keep the symbolic IDs often used in XTM and LTM files.
When setting the IDs of elements we set the ID to "fragment" if the object has a source locator of the form "base#fragment", where base is the base address of the topic map store. If no such source locator is found, the ID becomes "id" + object ID.
See the getSubjectIndicatorRef method in XTMTopicMapExporter to see how subject indicators are exported. Synchronization of these two methods is vital.
-
mayCollide
public static boolean mayCollide(String id)
INTERNAL: Used to find out whether this ID may collide with IDs produced from object IDs. See bug #654. Works for both id234234 and idT234234.
-
isValidXMLId
protected boolean isValidXMLId(String id)
INTERNAL: Used to test whether the ID is a syntactically valid XML ID.
-
-