You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mo...@apache.org on 2001/11/26 15:03:09 UTC

cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java DOMImpl.java MultiDOM.java

morten      01/11/26 06:03:09

  Modified:    java/src/org/apache/xalan/xsltc DOM.java
               java/src/org/apache/xalan/xsltc/compiler Message.java
               java/src/org/apache/xalan/xsltc/dom DOMAdapter.java
                        DOMImpl.java MultiDOM.java
  Log:
  Added a new method to the DOM interface for retrieving the DOM as a single
  string. This method is different from the existing getStringValue() in the
  way that it generates element brackets and copies PIs and comments.
  PR:		bugzilla 4874
  Obtained from:	n/a
  Submitted by:	morten@xml.apache.org
  Reviewed by:	morten@xml.apache.org
  
  Revision  Changes    Path
  1.9       +2 -1      xml-xalan/java/src/org/apache/xalan/xsltc/DOM.java
  
  Index: DOM.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/DOM.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- DOM.java	2001/11/05 15:47:34	1.8
  +++ DOM.java	2001/11/26 14:03:09	1.9
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: DOM.java,v 1.8 2001/11/05 15:47:34 morten Exp $
  + * @(#)$Id: DOM.java,v 1.9 2001/11/26 14:03:09 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -92,6 +92,7 @@
       /** returns singleton iterator containg the document root */
       public NodeIterator getIterator();
       public String getStringValue();
  +    public String getTreeString(); // this one includes PIs and comments...
   	
       public NodeIterator getChildren(final int node);
       public NodeIterator getTypedChildren(final int type);
  
  
  
  1.5       +2 -2      xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Message.java
  
  Index: Message.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Message.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Message.java	2001/11/22 14:41:59	1.4
  +++ Message.java	2001/11/26 14:03:09	1.5
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Message.java,v 1.4 2001/11/22 14:41:59 morten Exp $
  + * @(#)$Id: Message.java,v 1.5 2001/11/26 14:03:09 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -98,7 +98,7 @@
   	compileResultTree(classGen, methodGen);
   	// Convert the 
   	final int toStr = cpg.addInterfaceMethodref(DOM_INTF,
  -						    "getStringValue",
  +						    "getTreeString",
   						    "()"+STRING_SIG);
   	il.append(new INVOKEINTERFACE(toStr, 1));
   
  
  
  
  1.11      +5 -1      xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMAdapter.java
  
  Index: DOMAdapter.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMAdapter.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- DOMAdapter.java	2001/11/05 15:47:34	1.10
  +++ DOMAdapter.java	2001/11/26 14:03:09	1.11
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: DOMAdapter.java,v 1.10 2001/11/05 15:47:34 morten Exp $
  + * @(#)$Id: DOMAdapter.java,v 1.11 2001/11/26 14:03:09 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -105,6 +105,10 @@
       
       public String getStringValue() {
   	return _domImpl.getStringValue();
  +    }
  +
  +    public String getTreeString() {
  +	return _domImpl.getTreeString();
       }
       
       public NodeIterator getChildren(final int node) {
  
  
  
  1.61      +61 -5     xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMImpl.java
  
  Index: DOMImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMImpl.java,v
  retrieving revision 1.60
  retrieving revision 1.61
  diff -u -r1.60 -r1.61
  --- DOMImpl.java	2001/11/22 13:42:26	1.60
  +++ DOMImpl.java	2001/11/26 14:03:09	1.61
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: DOMImpl.java,v 1.60 2001/11/22 13:42:26 morten Exp $
  + * @(#)$Id: DOMImpl.java,v 1.61 2001/11/26 14:03:09 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -2746,24 +2746,80 @@
   	     child != NULL;
   	     child = _nextSibling[child]) {
   	    switch (_type[child]) {
  +	    case TEXT:
  +		buffer.append(_text,
  +			      _offsetOrChild[child],
  +			      _lengthOrAttr[child]);
  +		break;
  +	    case PROCESSING_INSTRUCTION:
   	    case COMMENT:
  +		// This method should not return anything for PIs and comments
   		break;
  +	    default:
  +		stringValueAux(buffer, child);
  +	    }
  +	}
  +	return buffer;
  +    }
  +
  +    public String getTreeString() {
  +	StringBuffer buf = new StringBuffer();
  +	buf = getElementString(buf, ROOTNODE);
  +	return buf.toString();
  +    }
  +
  +    /**
  +     * Helper to getTreeString() above
  +     */
  +    private StringBuffer getElementString(StringBuffer buffer, int element) {
  +	String name = null;
  +
  +	if (isElement(element)) {
  +	    if ((name = getNodeName(element)) != null) {
  +		buffer.append('<');
  +		buffer.append(name);
  +		if (_offsetOrChild[element] == NULL) {
  +		    buffer.append("/>");
  +		    return buffer;
  +		}
  +		buffer.append('>');
  +	    }
  +	}
  +
  +	for (int child = _offsetOrChild[element];
  +	     child != NULL;
  +	     child = _nextSibling[child]) {
  +	    switch (_type[child]) {
  +	    case COMMENT:
  +		buffer.append("<!--");
  +		buffer.append(_text,
  +			      _offsetOrChild[child],
  +			      _lengthOrAttr[child]);
  +		buffer.append("-->");
  +		break;
   	    case TEXT:
   		buffer.append(_text,
   			      _offsetOrChild[child],
   			      _lengthOrAttr[child]);
   		break;
   	    case PROCESSING_INSTRUCTION:
  -		/* This method should not return anything for PIs
  +		buffer.append("<?");
   		buffer.append(_text,
   			      _offsetOrChild[child],
   			      _lengthOrAttr[child]);
  -		*/
  +		buffer.append("?>");
   		break;
   	    default:
  -		stringValueAux(buffer, child);
  +		getElementString(buffer, child);
   	    }
   	}
  +
  +	if (isElement(element) && name != null) {
  +	    buffer.append("</");
  +	    buffer.append(name);
  +	    buffer.append(">");
  +	}
  +
   	return buffer;
       }
   
  @@ -3319,7 +3375,7 @@
   	/**
   	 * SAX2: Receive notification of the end of an element.
   	 */
  -	public void endElement(String namespaceURI, String localName,
  +	public void endElement(String uri, String localName,
   			       String qname) {
   	    makeTextNode(false);
   
  
  
  
  1.14      +5 -1      xml-xalan/java/src/org/apache/xalan/xsltc/dom/MultiDOM.java
  
  Index: MultiDOM.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/MultiDOM.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- MultiDOM.java	2001/11/05 15:47:35	1.13
  +++ MultiDOM.java	2001/11/26 14:03:09	1.14
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: MultiDOM.java,v 1.13 2001/11/05 15:47:35 morten Exp $
  + * @(#)$Id: MultiDOM.java,v 1.14 2001/11/26 14:03:09 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -289,6 +289,10 @@
       
       public String getStringValue() {
   	return _adapters[0].getStringValue();
  +    }
  +
  +    public String getTreeString() {
  +	return _adapters[0].getTreeString();
       }
       
       public NodeIterator getChildren(final int node) {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org