Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.tm4j.topicmap.utils
Class XTMBuilder  view XTMBuilder download XTMBuilder.java

java.lang.Object
  extended byorg.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'


Field Summary
static java.lang.String DEFAULT_BASE_URL
           
(package private) static int INSTANCEOF
           
(package private)  java.util.Hashtable m_assignedIDs
           
(package private)  org.tm4j.net.Locator m_baseLocator
           
(package private)  org.tm4j.topicmap.Association m_currAssoc
           
(package private)  org.tm4j.topicmap.Topic m_currAssocType
           
(package private)  org.tm4j.topicmap.Member m_currMember
           
(package private)  org.tm4j.topicmap.Occurrence m_currOcc
           
(package private)  org.tm4j.topicmap.Scope m_currScope
           
(package private)  org.tm4j.topicmap.Topic m_currTopic
           
(package private)  org.tm4j.topicmap.VariantName m_currVariantName
           
(package private)  org.tm4j.net.Locator m_defaultBaseLocator
           
(package private)  org.tm4j.topicmap.TopicMapFactory m_factory
           
(package private)  boolean m_failOnVeto
           
(package private)  org.tm4j.net.LocatorFactory m_locatorFactory
           
private  org.apache.log4j.Category m_log
           
(package private)  org.tm4j.net.Locator m_mergeMapLocator
           
(package private)  boolean m_parseOptionValidating
           
(package private)  java.util.Stack m_refPurpose
           
(package private)  org.tm4j.net.Locator m_resourceLocator
           
(package private)  java.util.Hashtable m_stubTopics
           
(package private)  org.tm4j.topicmap.TopicMap m_tm
           
(package private)  org.tm4j.topicmap.TopicMapUtils m_tmutils
           
(package private)  java.util.Stack m_variants
           
(package private) static int MEMBER
           
(package private) static int MERGESCOPE
           
(package private)  int nextID
           
(package private) static int OCCURRENCE
           
static java.lang.String OPTION_FAIL_ON_VETO
          A convenience constant defining the property name http://www.tm4j.org/tm4j/xtmbuilder/failonveto
static java.lang.String OPTION_VALIDATION
          A convenience constant defining the property name http://www.tm4j.org/tm4j/xtmbuilder/validation
(package private) static int PARAMETERS
           
(package private) static int ROLESPEC
           
(package private) static int SCOPE
           
(package private) static int SUBJECTIDENTITY
           
(package private) static int VARIANTNAME
           
 
Fields inherited from interface org.tm4j.topicmap.utils.TopicMapHandler
REFTYPE_RESOURCE, REFTYPE_SUBJECTINDICATOR, REFTYPE_TOPIC
 
Constructor Summary
XTMBuilder()
          Creates an unitialised XTMBuilder for later initialisation by a call to the build() method.
XTMBuilder(org.tm4j.topicmap.TopicMap baseTM)
           
XTMBuilder(org.tm4j.topicmap.TopicMapFactory factory, org.tm4j.net.LocatorFactory locFactory)
           
XTMBuilder(org.tm4j.topicmap.TopicMap baseTM, org.tm4j.net.Locator mergeMapLocator)
           
 
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
 

Field Detail

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
Constructor Detail

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.

Method Detail

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)