bloritsch 01/10/25 13:34:44
Modified: src/org/apache/cocoon/xml/dom Tag: cocoon_20_branch
DOMBuilder.java
Log:
Optimize critical path And fix indentation
Revision Changes Path
No revision
No revision
1.1.1.1.2.6 +204 -203 xml-cocoon2/src/org/apache/cocoon/xml/dom/DOMBuilder.java
Index: DOMBuilder.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/xml/dom/DOMBuilder.java,v
retrieving revision 1.1.1.1.2.5
retrieving revision 1.1.1.1.2.6
diff -u -r1.1.1.1.2.5 -r1.1.1.1.2.6
--- DOMBuilder.java 2001/10/11 08:56:18 1.1.1.1.2.5
+++ DOMBuilder.java 2001/10/25 20:34:43 1.1.1.1.2.6
@@ -25,54 +25,54 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Pierpaolo Fumagalli</a>
* (Apache Software Foundation, Exoffice Technologies)
- * @version CVS $Revision: 1.1.1.1.2.5 $ $Date: 2001/10/11 08:56:18 $
+ * @version CVS $Revision: 1.1.1.1.2.6 $ $Date: 2001/10/25 20:34:43 $
*/
public class DOMBuilder implements XMLConsumer, Loggable {
protected Logger log;
/** The document was not started */
- private static final int S_AVAIL=0;
+ private static final int S_AVAIL = 0;
/** State between startDTD() and endDTD() */
- private static final int S_DTD=1;
+ private static final int S_DTD = 1;
/** State between startDocument() and endDocument() */
- private static final int S_DOC=2;
+ private static final int S_DOC = 2;
/** State between the first startElement() and the last endElement() */
- private static final int S_BODY=3;
+ private static final int S_BODY = 3;
/** State between the first startElement() and the last endElement() */
- private static final int S_CDATA=4;
+ private static final int S_CDATA = 4;
/** The state names (used by Location to output better error messages */
- private static final String stateName[]={
+ private static final String stateName[] = {
"Available", "DTD Processing", "Document", "Body", "CDATA Section"
};
/** The current state */
- private int state=S_AVAIL;
+ private int state = S_AVAIL;
/** The locator */
- private Locator locator=null;
+ private Locator locator = null;
/** The listener */
- protected Listener listener=null;
+ protected Listener listener = null;
/** The namespaces table */
- private NamespacesTable namespaces=null;
+ private NamespacesTable namespaces = null;
/** The current document */
- private Document document=null;
+ private Document document = null;
/** The current node */
- private Node current=null;
+ private Node current = null;
/** The document name (tag name of the root element) */
- private String name=null;
+ private String name = null;
/** The vector of namespaces declarations to include in the next element */
- private Vector undecl=new Vector();
+ private Vector undecl = new Vector();
/** The document factory */
- protected DOMFactory factory=null;
+ protected DOMFactory factory = null;
/**
* Construct a new instance of this TreeGenerator.
*/
protected DOMBuilder() {
- this(null,null);
+ this( null, null );
}
- public void setLogger(Logger logger) {
- if (this.log == null) {
+ public void setLogger( Logger logger ) {
+ if ( this.log == null ) {
this.log = logger;
}
}
@@ -80,17 +80,17 @@
/**
* Construct a new instance of this TreeGenerator.
*/
- public DOMBuilder(DOMFactory factory) {
- this(factory,null);
+ public DOMBuilder( DOMFactory factory ) {
+ this( factory, null );
}
/**
* Construct a new instance of this TreeGenerator.
*/
- public DOMBuilder(DOMFactory factory, Listener listener) {
+ public DOMBuilder( DOMFactory factory, Listener listener ) {
super();
- this.factory=factory;
- this.listener=listener;
+ this.factory = factory;
+ this.listener = listener;
}
/**
@@ -100,11 +100,11 @@
* which does not happen here.
*/
- public DOMBuilder(Node parentNode) {
+ public DOMBuilder( Node parentNode ) {
// Set the document as the owner of this node
this.document = parentNode.getOwnerDocument();
// Create a namespace table
- this.namespaces=new NamespacesTable();
+ this.namespaces = new NamespacesTable();
// Set the current node
this.current = parentNode;
// Go directly to BODY state
@@ -114,7 +114,7 @@
/** * Return the newly built Document.
*/
public Document getDocument() {
- return(this.document);
+ return ( this.document );
}
/**
@@ -122,8 +122,8 @@
*
* @param loc The SAX Locator.
*/
- public void setDocumentLocator (Locator loc) {
- this.locator=loc;
+ public void setDocumentLocator( Locator loc ) {
+ this.locator = loc;
}
/**
@@ -132,16 +132,16 @@
* @exception SAXException If this method was not called appropriately.
*/
public void startDocument()
- throws SAXException {
- if(state!=S_AVAIL) throw new SAXException("Invalid state"+location());
+ throws SAXException {
+ if ( state != S_AVAIL ) throw new SAXException( "Invalid state" +
location() );
// Create the namespaces table
- this.namespaces=new NamespacesTable();
+ this.namespaces = new NamespacesTable();
// Create a new Document empty document object
- this.document=this.factory.newDocument();
+ this.document = this.factory.newDocument();
// Set the current node
- this.current=this.document;
+ this.current = this.document;
// Do a state change
- state=S_DOC;
+ state = S_DOC;
}
/**
@@ -149,19 +149,19 @@
*
* @exception SAXException If this method was not called appropriately.
*/
- public void endDocument ()
- throws SAXException {
- if(state!=S_DOC) throw new SAXException("Invalid state"+location());
+ public void endDocument()
+ throws SAXException {
+ if ( state != S_DOC ) throw new SAXException( "Invalid state" + location()
);
// Check if the current element is the document
- if(this.document!=this.current)
- throw new SAXException("Invalid current node"+location());
+ if ( this.document != this.current )
+ throw new SAXException( "Invalid current node" + location() );
// Reset the current node and the document name
- this.current=null;
- this.name=null;
+ this.current = null;
+ this.name = null;
// Do a state change and reset the DTD flag
- state=S_AVAIL;
+ state = S_AVAIL;
// Notify the listener
- this.notify(this.document);
+ this.notify( this.document );
}
/**
@@ -174,28 +174,28 @@
* subset, or null if none was declared.
* @exception SAXException If this method was not called appropriately.
*/
- public void startDTD(String name, String publicId, String systemId)
- throws SAXException {
+ public void startDTD( String name, String publicId, String systemId )
+ throws SAXException {
// This method can be called only at DOCUMENT level
- if(state!=S_DOC) throw new SAXException("Invalid state"+location());
+ if ( state != S_DOC ) throw new SAXException( "Invalid state" + location()
);
// Check wether this method was already invoked
- if(this.name!=null)
- throw new SAXException("Duplicate DTD definition"+location());
+ if ( this.name != null )
+ throw new SAXException( "Duplicate DTD definition" + location() );
// Remember the specified document name
- this.name=name;
+ this.name = name;
// Recreate the document element
- Document doc=this.factory.newDocument(name,publicId,systemId);
+ Document doc = this.factory.newDocument( name, publicId, systemId );
// Copy the old document root PIs
- NodeList list=this.document.getChildNodes();
- for (int x=0; x<list.getLength(); x++) {
- if (list.item(x).getNodeType()!=Node.DOCUMENT_TYPE_NODE)
- doc.appendChild(doc.importNode(list.item(x),true));
+ NodeList list = this.document.getChildNodes();
+ for ( int x = 0; x < list.getLength(); x++ ) {
+ if ( list.item( x ).getNodeType() != Node.DOCUMENT_TYPE_NODE )
+ doc.appendChild( doc.importNode( list.item( x ), true ) );
}
// Declare the new document as the new real document
- this.document=doc;
- this.current=this.document;
+ this.document = doc;
+ this.current = this.document;
// Do a state change
- state=S_DTD;
+ state = S_DTD;
}
/**
@@ -207,11 +207,11 @@
* @exception SAXException If this method was not called appropriately.
*/
public void endDTD()
- throws SAXException {
+ throws SAXException {
// This method can be called only at DTD level
- if(state!=S_DTD) throw new SAXException("Invalid state"+location());
+ if ( state != S_DTD ) throw new SAXException( "Invalid state" + location()
);
// Do a state change
- state=S_DOC;
+ state = S_DOC;
}
/**
@@ -229,21 +229,21 @@
* attributes, it shall be an empty Attributes object.
* @exception SAXException If this method was not called appropriately.
*/
- public void startElement(String uri, String loc, String raw, Attributes a)
- throws SAXException {
- NamespacesTable.Name n=this.namespaces.resolve(uri,raw,null,loc);
+ public void startElement( String uri, String loc, String raw, Attributes a )
+ throws SAXException {
+ NamespacesTable.Name n = this.namespaces.resolve( uri, raw, null, loc );
// Check if this is we are defining the document root element
- if(state==S_DOC) {
+ if ( state == S_DOC ) {
// Check if the DTD was specified
- if (this.name!=null) {
+ if ( this.name != null ) {
// Check that this root element is equal to the one specified
// in the DTD
- if (!this.name.equals(n.getQName()))
- throw new SAXException("The name specified in the DTD '"+
- this.name+"' differs from the root "+
- "element name '"+n.getQName()+
- "'"+location());
- // Recreate the document since no DTD was specified
+ if ( !this.name.equals( n.getQName() ) )
+ throw new SAXException( "The name specified in the DTD '" +
+ this.name + "' differs from the root " +
+ "element name '" + n.getQName() +
+ "'" + location() );
+ // Recreate the document since no DTD was specified
} else {
/* DISABLED pending us tracking down what's causing document
* hierachy errors when we do this. This may well break people's
@@ -260,43 +260,43 @@
// Declare the new document as the new real document
this.document=doc;
*/
- this.current=this.document;
+ this.current = this.document;
}
// Change the state before continuing
- state=S_BODY;
+ state = S_BODY;
}
// Now that we initialized the root element we can perform the standard
// element check
- if(state!=S_BODY) throw new SAXException("Invalid state"+location());
+ if ( state != S_BODY ) throw new SAXException( "Invalid state" + location()
);
// Create the Element node
- Element e=this.document.createElementNS(("".equals(n.getUri()) ? null :
n.getUri()),n.getQName());
+ Element e = this.document.createElementNS( ( "".equals( n.getUri() ) ? null
: n.getUri() ), n.getQName() );
// Process all attributes, leave out namespace attributes
- for(int x=0;x<a.getLength();x++) {
- String auri=a.getURI(x);
- String aloc=a.getLocalName(x);
- String araw=a.getQName(x);
- String aval=a.getValue(x);
- if (araw.startsWith("xmlns:")==false && araw.equals("xmlns")==false) {
- NamespacesTable.Name k=this.namespaces.resolve(auri,araw,null,aloc);
+ for ( int x = 0; x < a.getLength(); x++ ) {
+ String auri = a.getURI( x );
+ String aloc = a.getLocalName( x );
+ String araw = a.getQName( x );
+ String aval = a.getValue( x );
+ if ( araw.startsWith( "xmlns:" ) == false && araw.equals( "xmlns" ) ==
false ) {
+ NamespacesTable.Name k = this.namespaces.resolve( auri, araw, null,
aloc );
// Set the attribute into the element
- auri=k.getPrefix().length()==0 ? null : k.getUri();
- e.setAttributeNS(auri,k.getQName(),aval);
+ auri = k.getPrefix().length() == 0 ? null : k.getUri();
+ e.setAttributeNS( auri, k.getQName(), aval );
}
}
// Append the xmlns... attributes
- if (this.undecl.size()>0) {
- for (int x=0; x<this.undecl.size(); x++) {
- NamespacesTable.Declaration dec=null;
- dec=(NamespacesTable.Declaration)this.undecl.elementAt(x);
- String aname="xmlns";
- if (dec.getPrefix().length()>0) aname="xmlns:"+dec.getPrefix();
- e.setAttributeNS("http://www.w3.org/2000/xmlns/",
aname,dec.getUri());
+ if ( this.undecl.size() > 0 ) {
+ for ( int x = 0; x < this.undecl.size(); x++ ) {
+ NamespacesTable.Declaration dec = null;
+ dec = (NamespacesTable.Declaration) this.undecl.elementAt( x );
+ String aname = "xmlns";
+ if ( dec.getPrefix().length() > 0 ) aname = "xmlns:" +
dec.getPrefix();
+ e.setAttributeNS( "http://www.w3.org/2000/xmlns/", aname,
dec.getUri() );
}
this.undecl.clear();
}
// Append this element to the parent and declare it current
- this.current.appendChild(e);
- this.current=e;
+ this.current.appendChild( e );
+ this.current = e;
}
/**
@@ -312,26 +312,26 @@
* string if raw names are not available.
* @exception SAXException If this method was not called appropriately.
*/
- public void endElement (String uri, String loc, String raw)
- throws SAXException {
- if(state!=S_BODY) throw new SAXException("Invalid state"+location());
+ public void endElement( String uri, String loc, String raw )
+ throws SAXException {
+ if ( state != S_BODY ) throw new SAXException( "Invalid state" + location()
);
// Check if the current node is an element
- if (this.current.getNodeType()!=Node.ELEMENT_NODE)
- throw new SAXException("Current node is not an element"+location());
+ if ( this.current.getNodeType() != Node.ELEMENT_NODE )
+ throw new SAXException( "Current node is not an element" + location() );
// Check if the current element has the same tag name of this event
- NamespacesTable.Name n=this.namespaces.resolve(uri,raw,null,loc);
- String oldname=((Element)this.current).getTagName();
- if (!oldname.equals(n.getQName()))
- throw new SAXException("Element end tag name '"+n.getQName()+
- "' differs from start tag name '"+
- oldname+"'"+location());
+ NamespacesTable.Name n = this.namespaces.resolve( uri, raw, null, loc );
+ String oldname = ( (Element) this.current ).getTagName();
+ if ( !oldname.equals( n.getQName() ) )
+ throw new SAXException( "Element end tag name '" + n.getQName() +
+ "' differs from start tag name '" +
+ oldname + "'" + location() );
// Restore the old node as current
- this.current=this.current.getParentNode();
- if (this.current==null) throw new SAXException("No parent"+location());
+ this.current = this.current.getParentNode();
+ if ( this.current == null ) throw new SAXException( "No parent" +
location() );
// Update the state if the current node is the document
- if (this.current==this.document) state=S_DOC;
+ if ( this.current == this.document ) state = S_DOC;
}
/**
@@ -341,13 +341,13 @@
* @param uri The Namespace URI the prefix is mapped to.
* @exception SAXException If this method was not called appropriately.
*/
- public void startPrefixMapping(String prefix, String uri)
- throws SAXException {
+ public void startPrefixMapping( String prefix, String uri )
+ throws SAXException {
// This method can only called at DOCUMENT or BODY levels
- if((state<S_DOC)||(state>S_BODY))
- throw new SAXException("Invalid state"+location());
+ if ( ( state < S_DOC ) || ( state > S_BODY ) )
+ throw new SAXException( "Invalid state" + location() );
// Insert this namespace in tables avoiding duplicates
- this.undecl.addElement(this.namespaces.addDeclaration(prefix,uri));
+ this.undecl.addElement( this.namespaces.addDeclaration( prefix, uri ) );
}
/**
@@ -355,15 +355,15 @@
*
* @param prefix The Namespace prefix that was being mapped.
*/
- public void endPrefixMapping(String prefix)
- throws SAXException {
+ public void endPrefixMapping( String prefix )
+ throws SAXException {
// This method can only called at DOCUMENT or BODY levels
- if((state<S_DOC)||(state>S_BODY))
- throw new SAXException("Invalid state"+location());
+ if ( ( state < S_DOC ) || ( state > S_BODY ) )
+ throw new SAXException( "Invalid state" + location() );
// Check if the namespace we're asked to remove was declared
- if (this.namespaces.removeDeclaration(prefix)==null)
- throw new SAXException("Prefix \""+prefix+"\" never declared"+
- location());
+ if ( this.namespaces.removeDeclaration( prefix ) == null )
+ throw new SAXException( "Prefix \"" + prefix + "\" never declared" +
+ location() );
}
/**
@@ -372,15 +372,15 @@
* @exception SAXException If this method was not called appropriately.
*/
public void startCDATA()
- throws SAXException {
+ throws SAXException {
// This method can only called at BODY level
- if(state!=S_BODY) throw new SAXException("Invalid state"+location());
- CDATASection cdata=this.document.createCDATASection("");
+ if ( state != S_BODY ) throw new SAXException( "Invalid state" + location()
);
+ CDATASection cdata = this.document.createCDATASection( "" );
// Set the CDATASection as the current element
- this.current.appendChild(cdata);
- this.current=cdata;
+ this.current.appendChild( cdata );
+ this.current = cdata;
// Do a state change
- state=S_CDATA;
+ state = S_CDATA;
}
/**
@@ -389,16 +389,16 @@
* @exception SAXException If this method was not called appropriately.
*/
public void endCDATA()
- throws SAXException {
+ throws SAXException {
// This method can only called at BODY level
- if(state!=S_CDATA) throw new SAXException("Invalid state"+location());
+ if ( state != S_CDATA ) throw new SAXException( "Invalid state" +
location() );
// Set the parent of the CDATASection as the current element
// We don't need to check the node type because in CDATA state the
// current element can be ONLY a CDATASection node
- this.current=this.current.getParentNode();
- if (this.current==null) throw new SAXException("No parent"+location());
+ this.current = this.current.getParentNode();
+ if ( this.current == null ) throw new SAXException( "No parent" +
location() );
// Do a state change, and revert to the BODY state
- state=S_BODY;
+ state = S_BODY;
}
/**
@@ -409,15 +409,15 @@
* @param len The number of characters to read from the array.
* @exception SAXException If this method was not called appropriately.
*/
- public void startEntity(java.lang.String name)
- throws SAXException {
+ public void startEntity( java.lang.String name )
+ throws SAXException {
// This method can only called at BODY level
- if((state!=S_BODY)&&(state!=S_DTD))
- throw new SAXException("Invalid state"+location());
+ if ( ( state != S_BODY ) && ( state != S_DTD ) )
+ throw new SAXException( "Invalid state" + location() );
// Update the current element with the entity reference node
- EntityReference eref=this.document.createEntityReference(name);
- this.current.appendChild(eref);
- this.current=eref;
+ EntityReference eref = this.document.createEntityReference( name );
+ this.current.appendChild( eref );
+ this.current = eref;
}
/**
@@ -428,24 +428,24 @@
* @param len The number of characters to read from the array.
* @exception SAXException If this method was not called appropriately.
*/
- public void endEntity(java.lang.String name)
- throws SAXException {
+ public void endEntity( java.lang.String name )
+ throws SAXException {
// This method can only called at BODY level
- if(state!=S_BODY) throw new SAXException("Invalid state"+location());
+ if ( state != S_BODY ) throw new SAXException( "Invalid state" + location()
);
// Check if the current node is an entity reference
- if (this.current.getNodeType()!=Node.ENTITY_REFERENCE_NODE)
- throw new SAXException("Current node is not an entity reference"+
- location());
+ if ( this.current.getNodeType() != Node.ENTITY_REFERENCE_NODE )
+ throw new SAXException( "Current node is not an entity reference" +
+ location() );
// Check if the current element has the same tag name of this event
- String oldname=((EntityReference)this.current).getNodeName();
- if (!oldname.equals(name))
- throw new SAXException("Entity reference closing name '"+name+"' "+
- "differs from start name '"+oldname+"'"+
- location());
+ String oldname = ( (EntityReference) this.current ).getNodeName();
+ if ( !oldname.equals( name ) )
+ throw new SAXException( "Entity reference closing name '" + name + "' "
+
+ "differs from start name '" + oldname + "'" +
+ location() );
// Restore the old node as current
- this.current=this.current.getParentNode();
- if (this.current==null) throw new SAXException("No parent"+location());
+ this.current = this.current.getParentNode();
+ if ( this.current == null ) throw new SAXException( "No parent" +
location() );
}
/**
@@ -456,17 +456,17 @@
* @param len The number of characters to read from the array.
* @exception SAXException If this method was not called appropriately.
*/
- public void characters (char chars[], int start, int len)
- throws SAXException {
+ public void characters( char chars[], int start, int len )
+ throws SAXException {
// This method can only called at BODY or CDATA levels
- if(state<S_BODY) throw new SAXException("Invalid state "+location());
+ if ( state < S_BODY ) throw new SAXException( "Invalid state " + location()
);
// Check if we are in the CDATA state
- String data=new String(chars,start,len);
- if(state==S_CDATA) {
- ((CDATASection)this.current).appendData(data);
+ String data = new String( chars, start, len );
+ if ( state == S_CDATA ) {
+ ( (CDATASection) this.current ).appendData( data );
} else {
- Text text=this.document.createTextNode(data);
- this.current.appendChild(text);
+ Text text = this.document.createTextNode( data );
+ this.current.appendChild( text );
}
}
@@ -478,20 +478,20 @@
* @param len The number of characters to read from the array.
* @exception SAXException If this method was not called appropriately.
*/
- public void ignorableWhitespace (char chars[], int start, int len)
- throws SAXException {
+ public void ignorableWhitespace( char chars[], int start, int len )
+ throws SAXException {
// This is because some parsers may report ignorable whitespace outside
// the scope of the root element
- if(state==S_DOC) return;
+ if ( state == S_DOC ) return;
// This method can only called at BODY or CDATA levels
- if(state<S_BODY) throw new SAXException("Invalid state"+location());
+ if ( state < S_BODY ) throw new SAXException( "Invalid state" + location()
);
// Check if we are in the CDATA state
- if(state==S_CDATA)
- throw new SAXException("CDATA sections cannot contain ignorable "+
- "whitespace"+location());
+ if ( state == S_CDATA )
+ throw new SAXException( "CDATA sections cannot contain ignorable " +
+ "whitespace" + location() );
// Create and append a text node
- Text text=this.document.createTextNode(new String(chars,start,len));
- this.current.appendChild(text);
+ Text text = this.document.createTextNode( new String( chars, start, len ) );
+ this.current.appendChild( text );
}
/**
@@ -501,17 +501,17 @@
* @param data The processing instruction data.
* @exception SAXException If this method was not called appropriately.
*/
- public void processingInstruction (String target, String data)
- throws SAXException {
+ public void processingInstruction( String target, String data )
+ throws SAXException {
// This is because Xerces reports processing instructions inside DTDs
- if(state==S_DTD) return;
+ if ( state == S_DTD ) return;
// This method can only called at DOCUMENT or BODY levels
- if((state<S_DOC)||(state>S_BODY))
- throw new SAXException("Invalid state"+location());
+ if ( ( state < S_DOC ) || ( state > S_BODY ) )
+ throw new SAXException( "Invalid state" + location() );
// Create and append a processing instruction node
ProcessingInstruction pi;
- pi=this.document.createProcessingInstruction(target,data);
- this.current.appendChild(pi);
+ pi = this.document.createProcessingInstruction( target, data );
+ this.current.appendChild( pi );
}
/**
@@ -522,16 +522,16 @@
* @param len The number of characters to read from the array.
* @exception SAXException If this method was not called appropriately.
*/
- public void comment(char chars[], int start, int len)
- throws SAXException {
+ public void comment( char chars[], int start, int len )
+ throws SAXException {
// This is because Xerces reports comments inside DTDs
- if(state==S_DTD) return;
+ if ( state == S_DTD ) return;
// This method can only called at DOCUMENT or BODY levels
- if((state<S_DOC)||(state>S_BODY))
- throw new SAXException("Invalid state"+location());
+ if ( ( state < S_DOC ) || ( state > S_BODY ) )
+ throw new SAXException( "Invalid state" + location() );
// Create and append a comment node
- Comment com=this.document.createComment(new String(chars,start,len));
- this.current.appendChild(com);
+ Comment com = this.document.createComment( new String( chars, start, len )
);
+ this.current.appendChild( com );
}
/**
@@ -540,36 +540,37 @@
* @param name The name of the skipped entity. If it is a parameter entity,
* the name will begin with '%'.
*/
- public void skippedEntity(java.lang.String name)
- throws SAXException {
+ public void skippedEntity( java.lang.String name )
+ throws SAXException {
// This method can only called at BODY level
- if(state!=S_BODY) throw new SAXException("Invalid state"+location());
+ if ( state != S_BODY ) throw new SAXException( "Invalid state" + location()
);
// Create and append a comment node
- EntityReference eref=this.document.createEntityReference(name);
- this.current.appendChild(eref);
+ EntityReference eref = this.document.createEntityReference( name );
+ this.current.appendChild( eref );
}
/**
* Receive notification of a successfully completed DOM tree generation.
*/
- protected void notify(Document doc)
- throws SAXException {
- if (this.listener!=null) this.listener.notify(this.document);
+ protected void notify( Document doc )
+ throws SAXException {
+ if ( this.listener != null ) this.listener.notify( this.document );
}
/** Create a location string */
private String location() {
- if (this.locator==null) return("");
- String pub=this.locator.getPublicId();
- String sys=this.locator.getSystemId();
- pub=((pub==null) ? "" : ("Public ID=\""+pub+"\" "));
- sys=((sys==null) ? "" : ("System ID=\""+sys+"\" "));
- int l=this.locator.getLineNumber();
- int c=this.locator.getColumnNumber();
- String lin=((l<0) ? "" : ("line="+l+""));
- String col=((c<0) ? "" : (" col="+c+""));
- return new String(" ("+sys+pub+lin+col+" State: "+
- stateName[this.state]+")");
+ if ( this.locator == null ) return ( "" );
+ String pub = this.locator.getPublicId();
+ String sys = this.locator.getSystemId();
+ pub = ( ( pub == null ) ? "" : new StringBuffer( "Public ID=\"" ).append(
pub ).append( "\" " ).toString() );
+ sys = ( ( sys == null ) ? "" : new StringBuffer( "System ID=\"" ).append(
sys ).append( "\" " ).toString() );
+ int l = this.locator.getLineNumber();
+ int c = this.locator.getColumnNumber();
+ String lin = ( ( l < 0 ) ? "" : new StringBuffer( "line=" ).append( l
).append( "" ).toString() );
+ String col = ( ( c < 0 ) ? "" : new StringBuffer( " col=" ).append( c
).append( "" ).toString() );
+ return new StringBuffer( " (" ).append( sys ).append( pub )
+ .append( lin ).append( col ).append( " State: " )
+ .append( stateName[this.state] + ")" ).toString();
}
/**
@@ -581,7 +582,7 @@
/**
* Receive notification of a successfully completed DOM tree generation.
*/
- void notify(Document doc)
- throws SAXException;
+ void notify( Document doc )
+ throws SAXException;
}
}
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]