You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2016/10/09 15:44:19 UTC
svn commit: r1763989 - in /webservices/axiom/trunk/aspects:
core-aspects/src/main/java/org/apache/axiom/core/impl/builder/
core-aspects/src/main/java/org/apache/axiom/core/stream/
core-aspects/src/main/java/org/apache/axiom/core/stream/dom/ core-aspect...
Author: veithen
Date: Sun Oct 9 15:44:19 2016
New Revision: 1763989
URL: http://svn.apache.org/viewvc?rev=1763989&view=rev
Log:
AXIOM-487: Add support for namespace unaware attributes to XmlHandler.
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuildableContext.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuilderHandler.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/Context.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/UnwrappingContext.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/NullXmlHandler.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandler.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandlerWrapper.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/dom/DOMReader.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerXmlHandler.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/Serializer.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/stax/pull/StAXPivot.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/SAXResultContentHandler.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/stax/push/XMLStreamWriterHandler.java
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuildableContext.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuildableContext.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuildableContext.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuildableContext.java Sun Oct 9 15:44:19 2016
@@ -31,6 +31,7 @@ import org.apache.axiom.core.CoreModelEx
import org.apache.axiom.core.CoreModelStreamException;
import org.apache.axiom.core.CoreNSAwareAttribute;
import org.apache.axiom.core.CoreNSAwareElement;
+import org.apache.axiom.core.CoreNSUnawareAttribute;
import org.apache.axiom.core.CoreNamespaceDeclaration;
import org.apache.axiom.core.CoreParentNode;
import org.apache.axiom.core.CoreProcessingInstruction;
@@ -211,6 +212,24 @@ final class BuildableContext extends Con
try {
attr.coreSetCharacterData(value, null);
} catch (CoreModelException ex) {
+ throw new CoreModelStreamException(ex);
+ }
+ attr.coreSetType(type);
+ attr.coreSetSpecified(specified);
+ ((CoreElement)target).coreAppendAttribute(attr);
+ }
+ }
+
+ @Override
+ void processAttribute(String name, String value, String type, boolean specified) throws StreamException {
+ if (passThroughHandler != null) {
+ passThroughHandler.processAttribute(name, value, type, specified);
+ } else {
+ CoreNSUnawareAttribute attr = builderHandler.nodeFactory.createNode(CoreNSUnawareAttribute.class);
+ attr.coreSetName(name);
+ try {
+ attr.coreSetCharacterData(value, null);
+ } catch (CoreModelException ex) {
throw new CoreModelStreamException(ex);
}
attr.coreSetType(type);
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuilderHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuilderHandler.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuilderHandler.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuilderHandler.java Sun Oct 9 15:44:19 2016
@@ -163,6 +163,11 @@ final class BuilderHandler implements Xm
context.processAttribute(namespaceURI, localName, prefix, value, type, specified);
}
+ @Override
+ public void processAttribute(String name, String value, String type, boolean specified) throws StreamException {
+ context.processAttribute(name, value, type, specified);
+ }
+
public void processNamespaceDeclaration(String prefix, String namespaceURI) throws StreamException {
context.processNamespaceDeclaration(prefix, namespaceURI);
}
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/Context.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/Context.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/Context.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/Context.java Sun Oct 9 15:44:19 2016
@@ -54,6 +54,8 @@ abstract class Context {
abstract void processAttribute(String namespaceURI, String localName, String prefix, String value, String type, boolean specified) throws StreamException;
+ abstract void processAttribute(String name, String value, String type, boolean specified) throws StreamException;
+
abstract void processNamespaceDeclaration(String prefix, String namespaceURI) throws StreamException;
abstract void attributesCompleted() throws StreamException;
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/UnwrappingContext.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/UnwrappingContext.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/UnwrappingContext.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/UnwrappingContext.java Sun Oct 9 15:44:19 2016
@@ -72,6 +72,13 @@ final class UnwrappingContext extends Co
}
@Override
+ void processAttribute(String name, String value, String type, boolean specified)
+ throws StreamException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
void processNamespaceDeclaration(String prefix, String namespaceURI) throws StreamException {
// TODO Auto-generated method stub
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/NullXmlHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/NullXmlHandler.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/NullXmlHandler.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/NullXmlHandler.java Sun Oct 9 15:44:19 2016
@@ -52,6 +52,11 @@ public final class NullXmlHandler implem
}
@Override
+ public void processAttribute(String name, String value, String type, boolean specified)
+ throws StreamException {
+ }
+
+ @Override
public void processNamespaceDeclaration(String prefix, String namespaceURI)
throws StreamException {
}
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandler.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandler.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandler.java Sun Oct 9 15:44:19 2016
@@ -51,10 +51,10 @@ public interface XmlHandler {
void endElement() throws StreamException;
/**
- * Add the given attribute to the element.
+ * Add the given namespace aware attribute to the element.
*
* @param namespaceURI
- * the namespace URI or the attribute; never <code>null</code>
+ * the namespace URI of the attribute; never <code>null</code>
* @param localName
* the local name of the attribute; never <code>null</code>
* @param prefix
@@ -68,6 +68,19 @@ public interface XmlHandler {
void processAttribute(String namespaceURI, String localName, String prefix, String value, String type, boolean specified) throws StreamException;
/**
+ * Add the given namespece unaware attribute to the element.
+ *
+ * @param name
+ * the name of the attribute; never <code>null</code>
+ * @param value
+ * the value of the attribute; never <code>null</code>
+ * @param type
+ * the attribute type (e.g. <tt>CDATA</tt>); never <code>null</code>
+ * @throws StreamException
+ */
+ void processAttribute(String name, String value, String type, boolean specified) throws StreamException;
+
+ /**
* Add the given namespace declaration to the element.
*
* @param prefix
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandlerWrapper.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandlerWrapper.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandlerWrapper.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandlerWrapper.java Sun Oct 9 15:44:19 2016
@@ -64,6 +64,12 @@ public class XmlHandlerWrapper implement
}
@Override
+ public void processAttribute(String name, String value, String type, boolean specified)
+ throws StreamException {
+ parent.processAttribute(name, value, type, specified);
+ }
+
+ @Override
public void processNamespaceDeclaration(String prefix, String namespaceURI)
throws StreamException {
parent.processNamespaceDeclaration(prefix, namespaceURI);
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/dom/DOMReader.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/dom/DOMReader.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/dom/DOMReader.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/dom/DOMReader.java Sun Oct 9 15:44:19 2016
@@ -149,8 +149,7 @@ final class DOMReader implements XmlRead
Attr attr = (Attr)attributes.item(i);
String attrLocalName = attr.getLocalName();
if (attrLocalName == null) {
- // TODO
- throw new UnsupportedOperationException();
+ handler.processAttribute(attr.getName(), attr.getValue(), "CDATA", attr.getSpecified());
} else {
String namespaceURI = attr.getNamespaceURI();
if (XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(namespaceURI)) {
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerXmlHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerXmlHandler.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerXmlHandler.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerXmlHandler.java Sun Oct 9 15:44:19 2016
@@ -124,6 +124,13 @@ public class ContentHandlerXmlHandler im
attributes.addAttribute(namespaceURI, localName, getQName(prefix, localName), type, value);
}
+ @Override
+ public void processAttribute(String name, String value, String type, boolean specified)
+ throws StreamException {
+ // TODO
+ throw new UnsupportedOperationException();
+ }
+
public void attributesCompleted() throws StreamException {
try {
contentHandler.startElement(elementURI, elementLocalName, elementQName, attributes);
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/Serializer.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/Serializer.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/Serializer.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/Serializer.java Sun Oct 9 15:44:19 2016
@@ -810,6 +810,11 @@ public final class Serializer extends Se
}
@Override
+ public void processAttribute(String name, String value, String type, boolean specified) throws StreamException {
+ writeAttribute("", name, value);
+ }
+
+ @Override
public void attributesCompleted() throws StreamException {
}
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/stax/pull/StAXPivot.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/stax/pull/StAXPivot.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/stax/pull/StAXPivot.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/stax/pull/StAXPivot.java Sun Oct 9 15:44:19 2016
@@ -319,6 +319,13 @@ public final class StAXPivot implements
}
@Override
+ public void processAttribute(String name, String value, String type, boolean specified)
+ throws StreamException {
+ // TODO
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
public void processNamespaceDeclaration(String prefix, String namespaceURI) throws StreamException {
putNamespaceDeclaration(scopeStack[depth+1]++, prefix, namespaceURI);
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/SAXResultContentHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/SAXResultContentHandler.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/SAXResultContentHandler.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/SAXResultContentHandler.java Sun Oct 9 15:44:19 2016
@@ -98,6 +98,13 @@ public final class SAXResultContentHandl
}
@Override
+ public void processAttribute(String name, String value, String type, boolean specified)
+ throws StreamException {
+ // TODO
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
public void processNamespaceDeclaration(String prefix, String namespaceURI) {
if (prefix.isEmpty()) {
((OMElement)target).declareDefaultNamespace(namespaceURI);
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/stax/push/XMLStreamWriterHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/stax/push/XMLStreamWriterHandler.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/stax/push/XMLStreamWriterHandler.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/stax/push/XMLStreamWriterHandler.java Sun Oct 9 15:44:19 2016
@@ -114,6 +114,15 @@ public class XMLStreamWriterHandler impl
}
}
+ @Override
+ public void processAttribute(String name, String value, String type, boolean specified) throws StreamException {
+ try {
+ writer.writeAttribute(name, value);
+ } catch (XMLStreamException ex) {
+ throw new StreamException(ex);
+ }
+ }
+
public void attributesCompleted() throws StreamException {
// Nothing to do here
}