You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/02/16 07:31:36 UTC

svn commit: r508319 - /incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/xml/DOMXMLStreamReader.java

Author: rfeng
Date: Thu Feb 15 22:31:35 2007
New Revision: 508319

URL: http://svn.apache.org/viewvc?view=rev&rev=508319
Log:
Fix getTextLength()

Modified:
    incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/xml/DOMXMLStreamReader.java

Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/xml/DOMXMLStreamReader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/xml/DOMXMLStreamReader.java?view=diff&rev=508319&r1=508318&r2=508319
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/xml/DOMXMLStreamReader.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/xml/DOMXMLStreamReader.java Thu Feb 15 22:31:35 2007
@@ -424,11 +424,17 @@
             }
         }
 
-        public int getTextCharacters(int i, char[] chars, int i1, int i2) throws XMLStreamException {
-            // not implemented
-            throw new UnsupportedOperationException();
+        public int getTextCharacters(int sourceStart, char[] target, int targetStart, int length) {
+            char[] source = getTextCharacters();
+            if (sourceStart > source.length)
+                throw new IndexOutOfBoundsException("source start > source length");
+            int sourceLen = source.length - sourceStart;
+            if (length > sourceLen)
+                length = sourceLen;
+            System.arraycopy(source, sourceStart, target, targetStart, length);
+            return sourceLen;
         }
-
+        
         public int getTextLength() {
             if (state == TEXT_STATE) {
                 return value.length();
@@ -995,13 +1001,17 @@
         if (state == DELEGATED_STATE) {
             return childReader.getTextCharacters();
         } else if (state == TEXT_STATE) {
-            return properties[currentPropertyIndex - 1].getValue() == null ? new char[0]
-                : ((String) properties[currentPropertyIndex - 1].getValue()).toCharArray();
+            return getTextData();
         } else {
             throw new IllegalStateException();
         }
     }
 
+    private char[] getTextData() {
+        return properties[currentPropertyIndex - 1].getValue() == null ? new char[0]
+            : ((String) properties[currentPropertyIndex - 1].getValue()).toCharArray();
+    }
+
     public int getTextCharacters(int i, char[] chars, int i1, int i2) throws XMLStreamException {
         if (state == DELEGATED_STATE) {
             return childReader.getTextCharacters(i, chars, i1, i2);
@@ -1017,7 +1027,7 @@
         if (state == DELEGATED_STATE) {
             return childReader.getTextLength();
         } else if (state == TEXT_STATE) {
-            return 0; // assume text always starts at 0
+            return getTextData().length;
         } else {
             throw new IllegalStateException();
         }
@@ -1229,7 +1239,7 @@
                 }
                 continue;
             }
-            QName attrName = new QName(attr.getNamespaceURI(), attr.getLocalName());
+            QName attrName = new QName(attr.getNamespaceURI(), attr.getLocalName(), attr.getPrefix());
             NameValuePair pair = new NameValuePair(attrName, attr.getValue());
             attributeList.add(pair);
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org