java.lang.Object
org.tm4j.topicmap.utils.XTMBuilder
- All Implemented Interfaces:
- TopicMapBuilder, TopicMapHandler
- public class XTMBuilder
- extends java.lang.Object
- implements TopicMapHandler, TopicMapBuilder
Implementation of the TopicMapBuilder interface which supports the parsing of
topic map information from XML files conforming to the XTM 1.0 DTD and
specification.
Properties supported by this implementation are:
- http://www.tm4j.org/tm4j/xtmbuilder/validation [XTMBuilder.OPTION_VALIDATION]
- Specifies whether parsing should use a validating parser or a non-validating parser. If the value of this property is 'true', then a validating parser will be applied to the input stream, otherwise a non-validating parser will be applied. Default value is 'false'.
- http://www.tm4j.org/tm4j/xtmbuilder/failonveto [XTMBuilder.OPTION_FAIL_ON_VETO]
- Specifies whether parsing should be abandoned if a PropertyVetoException is encountered while populating the topic map. If the value of this property is 'true', then parsing will be abandonded if such an exception is raised, otherwise the builder will attempt to continue, ignoring the vetoed change. Default value is 'true'
|
Method Summary |
protected java.lang.String |
assignID(org.tm4j.net.Locator loc)
|
protected java.lang.String |
assignID(org.tm4j.net.Locator loc,
java.lang.String id)
|
protected java.lang.String |
assignID(java.lang.String elementID)
|
void |
baseNameString(java.lang.String id,
java.lang.String value)
|
void |
build(java.io.InputStream src,
org.tm4j.topicmap.TopicMap tm,
org.tm4j.topicmap.TopicMapProvider provider)
Build topic map constructs from the specified source stream. |
void |
endAssociation()
|
void |
endBaseName()
|
void |
endInstanceOf()
|
void |
endMember()
|
void |
endMergeMap()
|
void |
endOccurrence()
|
void |
endParameters()
|
void |
endRoleSpec()
|
void |
endScope()
|
void |
endSubjectIdentity()
|
void |
endTopic()
|
void |
endTopicMap()
|
void |
endVariant()
|
void |
endVariantName()
|
protected java.lang.String |
expandID(java.lang.String id)
|
protected org.tm4j.net.Locator |
expandRef(org.tm4j.net.Locator loc)
|
protected java.lang.String |
expandRef(java.lang.String ref)
|
protected java.lang.String |
expandResourceID(java.lang.String id)
|
java.lang.String |
generateID()
|
org.tm4j.topicmap.Topic |
getTopicByResourceLocator(org.tm4j.net.Locator resourceLocator)
|
org.tm4j.topicmap.Topic |
getTopicBySubject(org.tm4j.net.Locator resource)
|
org.tm4j.topicmap.Topic |
getTopicBySubjectIndicator(java.lang.String indicator)
|
org.tm4j.topicmap.TopicMap |
getTopicMap()
|
protected void |
init()
|
boolean |
isSupportedProperty(java.lang.String propertyName)
Determines whether or not a specific property is supported by the TopicMapBuilder
implementation. |
protected int |
peekPurpose()
|
protected int |
popPurpose()
|
protected void |
pushPurpose(int purpose)
|
void |
ref(java.lang.String id,
int refType,
org.tm4j.net.Locator refValue)
|
void |
ref(java.lang.String id,
int refType,
java.lang.String refValue)
|
void |
reportWarning(java.lang.String msg)
|
void |
resourceData(java.lang.String id,
java.lang.String data)
|
protected org.tm4j.net.Locator |
resourceLocatorForID(java.lang.String id)
|
private boolean |
safeStringCompare(java.lang.String str1,
java.lang.String str2,
boolean ignoreCase)
|
private boolean |
sameDocument(org.tm4j.net.Locator loc1,
org.tm4j.net.Locator loc2)
|
void |
setProperty(java.lang.String propertyName,
java.lang.String value)
Set a configuration property for the builder which will be applied
to the processing of subsequent invocations of the build()
method. |
protected void |
setResourceID(org.tm4j.topicmap.TopicMapObject tmo,
java.lang.String id)
|
void |
setResourceLocator(org.tm4j.net.Locator loc)
|
void |
setResourceURL(java.net.URL u)
Deprecated. From 0.6.0 use setResourceLocator(org.tm4j.net.Locator) 55 instead. |
void |
startAssociation(java.lang.String id)
|
void |
startBaseName(java.lang.String id)
|
void |
startInstanceOf(java.lang.String id)
|
void |
startMember(java.lang.String id)
|
void |
startMergeMap(java.lang.String id,
java.lang.String mergeMapURI)
|
void |
startOccurrence(java.lang.String id)
|
void |
startParameters(java.lang.String id)
|
void |
startRoleSpec(java.lang.String id)
|
void |
startScope(java.lang.String id)
|
void |
startSubjectIdentity(java.lang.String id)
|
void |
startTopic(java.lang.String id)
|
void |
startTopicMap(java.lang.String id,
java.lang.String xmlBase)
|
void |
startVariant(java.lang.String id)
|
void |
startVariantName(java.lang.String id)
|
void |
variantName(java.lang.String id,
java.lang.String value)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DEFAULT_BASE_URL
public static final java.lang.String DEFAULT_BASE_URL
- See Also:
- Constant Field Values
m_log
private org.apache.log4j.Category m_log
m_tm
org.tm4j.topicmap.TopicMap m_tm
m_tmutils
org.tm4j.topicmap.TopicMapUtils m_tmutils
m_factory
org.tm4j.topicmap.TopicMapFactory m_factory
m_locatorFactory
org.tm4j.net.LocatorFactory m_locatorFactory
m_defaultBaseLocator
org.tm4j.net.Locator m_defaultBaseLocator
m_baseLocator
org.tm4j.net.Locator m_baseLocator
m_resourceLocator
org.tm4j.net.Locator m_resourceLocator
m_currTopic
org.tm4j.topicmap.Topic m_currTopic
m_currOcc
org.tm4j.topicmap.Occurrence m_currOcc
m_currAssoc
org.tm4j.topicmap.Association m_currAssoc
m_currAssocType
org.tm4j.topicmap.Topic m_currAssocType
m_currMember
org.tm4j.topicmap.Member m_currMember
m_currScope
org.tm4j.topicmap.Scope m_currScope
m_currVariantName
org.tm4j.topicmap.VariantName m_currVariantName
m_variants
java.util.Stack m_variants
m_refPurpose
java.util.Stack m_refPurpose
m_stubTopics
java.util.Hashtable m_stubTopics
m_assignedIDs
java.util.Hashtable m_assignedIDs
m_mergeMapLocator
org.tm4j.net.Locator m_mergeMapLocator
m_failOnVeto
boolean m_failOnVeto
m_parseOptionValidating
boolean m_parseOptionValidating
nextID
int nextID
INSTANCEOF
static final int INSTANCEOF
- See Also:
- Constant Field Values
SCOPE
static final int SCOPE
- See Also:
- Constant Field Values
ROLESPEC
static final int ROLESPEC
- See Also:
- Constant Field Values
SUBJECTIDENTITY
static final int SUBJECTIDENTITY
- See Also:
- Constant Field Values
OCCURRENCE
static final int OCCURRENCE
- See Also:
- Constant Field Values
PARAMETERS
static final int PARAMETERS
- See Also:
- Constant Field Values
MEMBER
static final int MEMBER
- See Also:
- Constant Field Values
MERGESCOPE
static final int MERGESCOPE
- See Also:
- Constant Field Values
VARIANTNAME
static final int VARIANTNAME
- See Also:
- Constant Field Values
OPTION_VALIDATION
public static final java.lang.String OPTION_VALIDATION
- A convenience constant defining the property name http://www.tm4j.org/tm4j/xtmbuilder/validation
- See Also:
- Constant Field Values
OPTION_FAIL_ON_VETO
public static final java.lang.String OPTION_FAIL_ON_VETO
- A convenience constant defining the property name http://www.tm4j.org/tm4j/xtmbuilder/failonveto
- See Also:
- Constant Field Values
XTMBuilder
public XTMBuilder(org.tm4j.topicmap.TopicMapFactory factory,
org.tm4j.net.LocatorFactory locFactory)
XTMBuilder
public XTMBuilder(org.tm4j.topicmap.TopicMap baseTM)
XTMBuilder
public XTMBuilder(org.tm4j.topicmap.TopicMap baseTM,
org.tm4j.net.Locator mergeMapLocator)
XTMBuilder
public XTMBuilder()
- Creates an unitialised XTMBuilder for later initialisation by
a call to the build() method.
init
protected void init()
isSupportedProperty
public boolean isSupportedProperty(java.lang.String propertyName)
- Description copied from interface:
TopicMapBuilder
- Determines whether or not a specific property is supported by the TopicMapBuilder
implementation.
- Specified by:
isSupportedProperty in interface TopicMapBuilder
setProperty
public void setProperty(java.lang.String propertyName,
java.lang.String value)
throws BuilderPropertyNotRecognizedException,
BuilderPropertyInvalidException
- Description copied from interface:
TopicMapBuilder
- Set a configuration property for the builder which will be applied
to the processing of subsequent invocations of the
build()
method. A typical use of this method will be to set parser options prior
to parsing the input stream.
- Specified by:
setProperty in interface TopicMapBuilder
build
public void build(java.io.InputStream src,
org.tm4j.topicmap.TopicMap tm,
org.tm4j.topicmap.TopicMapProvider provider)
throws java.io.IOException,
org.tm4j.net.LocatorFactoryException,
org.tm4j.topicmap.TopicMapProcessingException,
java.beans.PropertyVetoException,
org.tm4j.topicmap.TopicMapProviderException
- Description copied from interface:
TopicMapBuilder
- Build topic map constructs from the specified source stream.
- Specified by:
build in interface TopicMapBuilder
getTopicMap
public org.tm4j.topicmap.TopicMap getTopicMap()
setResourceLocator
public void setResourceLocator(org.tm4j.net.Locator loc)
setResourceURL
public void setResourceURL(java.net.URL u)
- Deprecated. From 0.6.0 use
setResourceLocator(org.tm4j.net.Locator) 55 instead.
startTopicMap
public void startTopicMap(java.lang.String id,
java.lang.String xmlBase)
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
startTopicMap in interface TopicMapHandler
endTopicMap
public void endTopicMap()
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
endTopicMap in interface TopicMapHandler
startTopic
public void startTopic(java.lang.String id)
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
startTopic in interface TopicMapHandler
endTopic
public void endTopic()
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
endTopic in interface TopicMapHandler
pushPurpose
protected void pushPurpose(int purpose)
peekPurpose
protected int peekPurpose()
popPurpose
protected int popPurpose()
startInstanceOf
public void startInstanceOf(java.lang.String id)
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
startInstanceOf in interface TopicMapHandler
endInstanceOf
public void endInstanceOf()
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
endInstanceOf in interface TopicMapHandler
startSubjectIdentity
public void startSubjectIdentity(java.lang.String id)
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
startSubjectIdentity in interface TopicMapHandler
endSubjectIdentity
public void endSubjectIdentity()
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
endSubjectIdentity in interface TopicMapHandler
startBaseName
public void startBaseName(java.lang.String id)
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
startBaseName in interface TopicMapHandler
endBaseName
public void endBaseName()
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
endBaseName in interface TopicMapHandler
startOccurrence
public void startOccurrence(java.lang.String id)
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
startOccurrence in interface TopicMapHandler
endOccurrence
public void endOccurrence()
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
endOccurrence in interface TopicMapHandler
startAssociation
public void startAssociation(java.lang.String id)
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
startAssociation in interface TopicMapHandler
endAssociation
public void endAssociation()
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
endAssociation in interface TopicMapHandler
startMember
public void startMember(java.lang.String id)
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
startMember in interface TopicMapHandler
endMember
public void endMember()
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
endMember in interface TopicMapHandler
startRoleSpec
public void startRoleSpec(java.lang.String id)
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
startRoleSpec in interface TopicMapHandler
endRoleSpec
public void endRoleSpec()
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
endRoleSpec in interface TopicMapHandler
startMergeMap
public void startMergeMap(java.lang.String id,
java.lang.String mergeMapURI)
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
startMergeMap in interface TopicMapHandler
endMergeMap
public void endMergeMap()
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
endMergeMap in interface TopicMapHandler
ref
public void ref(java.lang.String id,
int refType,
java.lang.String refValue)
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
ref in interface TopicMapHandler
ref
public void ref(java.lang.String id,
int refType,
org.tm4j.net.Locator refValue)
throws org.tm4j.topicmap.TopicMapProcessingException,
org.tm4j.net.LocatorFactoryException
resourceData
public void resourceData(java.lang.String id,
java.lang.String data)
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
resourceData in interface TopicMapHandler
startScope
public void startScope(java.lang.String id)
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
startScope in interface TopicMapHandler
endScope
public void endScope()
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
endScope in interface TopicMapHandler
baseNameString
public void baseNameString(java.lang.String id,
java.lang.String value)
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
baseNameString in interface TopicMapHandler
startVariant
public void startVariant(java.lang.String id)
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
startVariant in interface TopicMapHandler
endVariant
public void endVariant()
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
endVariant in interface TopicMapHandler
startParameters
public void startParameters(java.lang.String id)
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
startParameters in interface TopicMapHandler
endParameters
public void endParameters()
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
endParameters in interface TopicMapHandler
startVariantName
public void startVariantName(java.lang.String id)
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
startVariantName in interface TopicMapHandler
endVariantName
public void endVariantName()
throws org.tm4j.topicmap.TopicMapProcessingException
- Specified by:
endVariantName in interface TopicMapHandler
variantName
public void variantName(java.lang.String id,
java.lang.String value)
throws org.tm4j.topicmap.TopicMapProcessingException
assignID
protected java.lang.String assignID(org.tm4j.net.Locator loc,
java.lang.String id)
assignID
protected java.lang.String assignID(org.tm4j.net.Locator loc)
assignID
protected java.lang.String assignID(java.lang.String elementID)
setResourceID
protected void setResourceID(org.tm4j.topicmap.TopicMapObject tmo,
java.lang.String id)
throws org.tm4j.topicmap.DuplicateResourceLocatorException
resourceLocatorForID
protected org.tm4j.net.Locator resourceLocatorForID(java.lang.String id)
expandResourceID
protected java.lang.String expandResourceID(java.lang.String id)
expandID
protected java.lang.String expandID(java.lang.String id)
expandRef
protected java.lang.String expandRef(java.lang.String ref)
throws org.tm4j.topicmap.TopicMapProcessingException
expandRef
protected org.tm4j.net.Locator expandRef(org.tm4j.net.Locator loc)
throws org.tm4j.topicmap.TopicMapProcessingException
getTopicByResourceLocator
public org.tm4j.topicmap.Topic getTopicByResourceLocator(org.tm4j.net.Locator resourceLocator)
throws org.tm4j.topicmap.TopicMapProcessingException
getTopicBySubject
public org.tm4j.topicmap.Topic getTopicBySubject(org.tm4j.net.Locator resource)
throws org.tm4j.topicmap.TopicMapProcessingException
getTopicBySubjectIndicator
public org.tm4j.topicmap.Topic getTopicBySubjectIndicator(java.lang.String indicator)
throws org.tm4j.topicmap.TopicMapProcessingException,
org.tm4j.net.LocatorFactoryException
reportWarning
public void reportWarning(java.lang.String msg)
generateID
public java.lang.String generateID()
sameDocument
private boolean sameDocument(org.tm4j.net.Locator loc1,
org.tm4j.net.Locator loc2)
safeStringCompare
private boolean safeStringCompare(java.lang.String str1,
java.lang.String str2,
boolean ignoreCase)