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/01/23 21:10:55 UTC
svn commit: r1726448 - in /webservices/axiom/trunk:
aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/
aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/
aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/co...
Author: veithen
Date: Sat Jan 23 20:10:54 2016
New Revision: 1726448
URL: http://svn.apache.org/viewvc?rev=1726448&view=rev
Log:
Simplify element creation in builders.
Added:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/intf/OMFactoryEx.java
- copied, changed from r1725804, webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/OMFactoryEx.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/intf/SOAPFactoryEx.java
- copied, changed from r1725804, webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/SOAPFactoryEx.java
Removed:
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/OMFactoryEx.java
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/SOAP12FactoryEx.java
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/SOAPFactoryEx.java
Modified:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomContainerSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/PushOMBuilder.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/StAXOMBuilder.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/SAXOMBuilder.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/SOAP12Factory.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/SOAPFactoryImpl.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAP11BuilderHelper.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAP12BuilderHelper.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAPBuilderHelper.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/StAXSOAPModelBuilder.java
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMBuilder.java
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMFactory.java
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomContainerSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomContainerSupport.aj?rev=1726448&r1=1726447&r2=1726448&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomContainerSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomContainerSupport.aj Sat Jan 23 20:10:54 2016
@@ -44,7 +44,6 @@ import org.apache.axiom.om.OMXMLStreamRe
import org.apache.axiom.om.OMXMLStreamReaderConfiguration;
import org.apache.axiom.om.impl.MTOMXMLStreamWriter;
import org.apache.axiom.om.impl.builder.Builder;
-import org.apache.axiom.om.impl.builder.OMFactoryEx;
import org.apache.axiom.om.impl.common.serializer.pull.OMXMLStreamReaderExAdapter;
import org.apache.axiom.om.impl.common.serializer.pull.PullSerializer;
import org.apache.axiom.om.impl.common.serializer.push.OutputException;
@@ -53,6 +52,7 @@ import org.apache.axiom.om.impl.common.s
import org.apache.axiom.om.impl.common.serializer.push.stax.StAXSerializer;
import org.apache.axiom.om.impl.intf.AxiomChildNode;
import org.apache.axiom.om.impl.intf.AxiomContainer;
+import org.apache.axiom.om.impl.intf.OMFactoryEx;
import org.apache.axiom.om.util.OMXMLStreamReaderValidator;
import org.apache.axiom.om.util.StAXUtils;
import org.apache.axiom.util.stax.XMLStreamReaderUtils;
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/PushOMBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/PushOMBuilder.java?rev=1726448&r1=1726447&r2=1726448&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/PushOMBuilder.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/PushOMBuilder.java Sat Jan 23 20:10:54 2016
@@ -32,10 +32,10 @@ import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.OMText;
-import org.apache.axiom.om.impl.builder.OMFactoryEx;
import org.apache.axiom.om.impl.intf.AxiomContainer;
import org.apache.axiom.om.impl.intf.AxiomElement;
import org.apache.axiom.om.impl.intf.AxiomSourcedElement;
+import org.apache.axiom.om.impl.intf.OMFactoryEx;
import org.apache.axiom.util.stax.AbstractXMLStreamWriter;
public class PushOMBuilder extends AbstractXMLStreamWriter implements DataHandlerWriter {
@@ -114,7 +114,7 @@ public class PushOMBuilder extends Abstr
} else {
// We use the createOMElement variant that takes a OMXMLParserWrapper parameter and
// don't pass the namespace. This avoids creation of a namespace declaration.
- parent = factory.createOMElement(localName, parent, null);
+ parent = factory.createAxiomElement(AxiomElement.class, localName, parent, null);
}
if (ns != null) {
parent.setNamespace(ns, false);
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/StAXOMBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/StAXOMBuilder.java?rev=1726448&r1=1726447&r2=1726448&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/StAXOMBuilder.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/StAXOMBuilder.java Sat Jan 23 20:10:54 2016
@@ -36,9 +36,9 @@ import org.apache.axiom.om.impl.builder.
import org.apache.axiom.om.impl.builder.CustomBuilder;
import org.apache.axiom.om.impl.builder.CustomBuilderSupport;
import org.apache.axiom.om.impl.builder.Detachable;
-import org.apache.axiom.om.impl.builder.OMFactoryEx;
import org.apache.axiom.om.impl.intf.AxiomContainer;
import org.apache.axiom.om.impl.intf.AxiomElement;
+import org.apache.axiom.om.impl.intf.OMFactoryEx;
import org.apache.axiom.util.stax.XMLEventUtils;
import org.apache.axiom.util.stax.XMLStreamReaderUtils;
import org.apache.commons.logging.Log;
@@ -817,29 +817,28 @@ public class StAXOMBuilder implements Bu
* @return Returns OMNode.
* @throws OMException
*/
- // This method is not meant to be overridden. Override constructNode to create model specific OMElement instances.
protected final OMNode createOMElement() throws OMException {
- OMElement node = constructNode(target, parser.getLocalName());
+ AxiomElement node = ((OMFactoryEx)omfactory).createAxiomElement(determineElementType(target, parser.getLocalName()), parser.getLocalName(), target, this);
+ postProcessElement(node);
populateOMElement(node);
return node;
}
/**
- * Instantiate the appropriate {@link OMElement} implementation for the current element. This
- * method may be overridden by subclasses to support model specific {@link OMElement} types. The
- * implementation of this method is expected to initialize the {@link OMElement} with the
- * specified local name and to add it to the specified parent. However, the implementation
- * should not set the namespace of the element or process the attributes of the element. This is
- * taken care of by the caller of this method.
+ * Determine the element type to use for the current element. This method may be overridden by
+ * subclasses to support model specific {@link OMElement} types.
*
* @param parent
* the parent for the element
* @param elementName
* the local name for the element
- * @return the newly created {@link OMElement}; must not be <code>null</code>
+ * @return the type of element to create; must not be <code>null</code>
*/
- protected OMElement constructNode(OMContainer parent, String elementName) {
- return omfactory.createOMElement(parser.getLocalName(), target, this);
+ protected Class<? extends AxiomElement> determineElementType(OMContainer parent, String elementName) {
+ return AxiomElement.class;
+ }
+
+ protected void postProcessElement(OMElement element) {
}
/**
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java?rev=1726448&r1=1726447&r2=1726448&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java Sat Jan 23 20:10:54 2016
@@ -42,7 +42,6 @@ import org.apache.axiom.om.OMSourcedElem
import org.apache.axiom.om.OMText;
import org.apache.axiom.om.OMXMLBuilderFactory;
import org.apache.axiom.om.OMXMLParserWrapper;
-import org.apache.axiom.om.impl.builder.OMFactoryEx;
import org.apache.axiom.om.impl.common.OMNamespaceImpl;
import org.apache.axiom.om.impl.common.AxiomSemantics;
import org.apache.axiom.om.impl.intf.AxiomAttribute;
@@ -57,6 +56,7 @@ import org.apache.axiom.om.impl.intf.Axi
import org.apache.axiom.om.impl.intf.AxiomProcessingInstruction;
import org.apache.axiom.om.impl.intf.AxiomSourcedElement;
import org.apache.axiom.om.impl.intf.AxiomText;
+import org.apache.axiom.om.impl.intf.OMFactoryEx;
import org.apache.axiom.om.impl.intf.TextContent;
public class OMFactoryImpl implements OMFactoryEx {
@@ -248,7 +248,7 @@ public class OMFactoryImpl implements OM
return createOMElement(localName, ns, null);
}
- public final <T extends AxiomElement> T createAxiomElement(Class<T> type,
+ protected final <T extends AxiomElement> T createAxiomElement(Class<T> type,
OMContainer parent, String localName, OMNamespace ns, OMXMLParserWrapper builder,
boolean generateNSDecl) {
T element = createNode(type);
@@ -264,9 +264,9 @@ public class OMFactoryImpl implements OM
return createAxiomElement(AxiomElement.class, parent, localName, ns, null, true);
}
- public final OMElement createOMElement(String localName, OMContainer parent,
- OMXMLParserWrapper builder) {
- return createAxiomElement(AxiomElement.class, parent, localName, null, builder, false);
+ public final <T extends AxiomElement> T createAxiomElement(Class<T> type, String localName,
+ OMContainer parent, OMXMLParserWrapper builder) {
+ return createAxiomElement(type, parent, localName, null, builder, false);
}
public final OMElement createOMElement(QName qname, OMContainer parent) {
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/SAXOMBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/SAXOMBuilder.java?rev=1726448&r1=1726447&r2=1726448&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/SAXOMBuilder.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/SAXOMBuilder.java Sat Jan 23 20:10:54 2016
@@ -25,11 +25,11 @@ import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMXMLParserWrapper;
-import org.apache.axiom.om.impl.builder.OMFactoryEx;
import org.apache.axiom.om.impl.common.OMContentHandler;
import org.apache.axiom.om.impl.common.builder.BuilderUtil;
import org.apache.axiom.om.impl.intf.AxiomContainer;
import org.apache.axiom.om.impl.intf.AxiomElement;
+import org.apache.axiom.om.impl.intf.OMFactoryEx;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
@@ -140,9 +140,9 @@ public class SAXOMBuilder extends OMCont
protected OMElement createOMElement(OMContainer parent, String localName,
String namespaceURI, String prefix, String[] namespaces, int namespaceCount) {
- OMElement element = factory.createOMElement(localName, parent, this);
+ AxiomElement element = factory.createAxiomElement(AxiomElement.class, localName, parent, this);
for (int i = 0; i < namespaceCount; i++) {
- ((AxiomElement)element).addNamespaceDeclaration(namespaces[2*i+1], namespaces[2*i]);
+ element.addNamespaceDeclaration(namespaces[2*i+1], namespaces[2*i]);
}
BuilderUtil.setNamespace(element, namespaceURI, prefix, false);
return element;
Copied: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/intf/OMFactoryEx.java (from r1725804, webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/OMFactoryEx.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/intf/OMFactoryEx.java?p2=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/intf/OMFactoryEx.java&p1=webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/OMFactoryEx.java&r1=1725804&r2=1726448&rev=1726448&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/OMFactoryEx.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/intf/OMFactoryEx.java Sat Jan 23 20:10:54 2016
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.axiom.om.impl.builder;
+package org.apache.axiom.om.impl.intf;
import org.apache.axiom.om.OMComment;
import org.apache.axiom.om.OMContainer;
@@ -25,6 +25,7 @@ import org.apache.axiom.om.OMDocument;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMEntityReference;
import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.OMProcessingInstruction;
import org.apache.axiom.om.OMText;
@@ -38,13 +39,8 @@ public interface OMFactoryEx extends OMF
OMDocument createOMDocument(OMXMLParserWrapper builder);
- /**
- * @param localName
- * @param parent
- * @param builder
- */
- OMElement createOMElement(String localName, OMContainer parent,
- OMXMLParserWrapper builder);
+ <T extends AxiomElement> T createAxiomElement(Class<T> type, String localName,
+ OMContainer parent, OMXMLParserWrapper builder);
OMText createOMText(OMContainer parent, Object dataHandler, boolean optimize, boolean fromBuilder);
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/SOAP12Factory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/SOAP12Factory.java?rev=1726448&r1=1726447&r2=1726448&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/SOAP12Factory.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/SOAP12Factory.java Sat Jan 23 20:10:54 2016
@@ -31,14 +31,13 @@ import org.apache.axiom.soap.SOAPFaultRe
import org.apache.axiom.soap.SOAPFaultSubCode;
import org.apache.axiom.soap.SOAPFaultText;
import org.apache.axiom.soap.SOAPFaultValue;
-import org.apache.axiom.soap.impl.builder.SOAP12FactoryEx;
import org.apache.axiom.soap.impl.intf.AxiomSOAP12FaultNode;
import org.apache.axiom.soap.impl.intf.AxiomSOAP12FaultSubCode;
import org.apache.axiom.soap.impl.intf.AxiomSOAP12FaultText;
import org.apache.axiom.soap.impl.intf.AxiomSOAP12FaultValue;
import org.apache.axiom.soap.impl.intf.SOAPHelper;
-public class SOAP12Factory extends SOAPFactoryImpl implements SOAP12FactoryEx {
+public class SOAP12Factory extends SOAPFactoryImpl {
public SOAP12Factory(OMMetaFactory metaFactory, NodeFactory nodeFactory) {
super(metaFactory, nodeFactory);
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/SOAPFactoryImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/SOAPFactoryImpl.java?rev=1726448&r1=1726447&r2=1726448&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/SOAPFactoryImpl.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/SOAPFactoryImpl.java Sat Jan 23 20:10:54 2016
@@ -40,10 +40,10 @@ import org.apache.axiom.soap.SOAPHeader;
import org.apache.axiom.soap.SOAPHeaderBlock;
import org.apache.axiom.soap.SOAPMessage;
import org.apache.axiom.soap.SOAPVersion;
-import org.apache.axiom.soap.impl.builder.SOAPFactoryEx;
import org.apache.axiom.soap.impl.intf.AxiomSOAPElement;
import org.apache.axiom.soap.impl.intf.AxiomSOAPHeaderBlock;
import org.apache.axiom.soap.impl.intf.AxiomSOAPMessage;
+import org.apache.axiom.soap.impl.intf.SOAPFactoryEx;
import org.apache.axiom.soap.impl.intf.SOAPHelper;
public abstract class SOAPFactoryImpl extends OMFactoryImpl implements SOAPFactoryEx {
@@ -51,8 +51,6 @@ public abstract class SOAPFactoryImpl ex
super(metaFactory, nodeFactory);
}
- protected abstract SOAPHelper getSOAPHelper();
-
public final String getSoapVersionURI() {
return getSOAPHelper().getEnvelopeURI();
}
@@ -65,7 +63,7 @@ public abstract class SOAPFactoryImpl ex
return getSOAPHelper().getNamespace();
}
- public final <T extends AxiomSOAPElement> T createSOAPElement(Class<T> type, OMElement parent, QName qname, OMXMLParserWrapper builder) {
+ protected final <T extends AxiomSOAPElement> T createSOAPElement(Class<T> type, OMElement parent, QName qname, OMXMLParserWrapper builder) {
T element = createNode(type);
if (builder != null) {
element.coreSetBuilder(builder);
@@ -111,21 +109,13 @@ public abstract class SOAPFactoryImpl ex
return createAxiomElement(getSOAPHelper().getEnvelopeClass(), null, SOAPConstants.SOAPENVELOPE_LOCAL_NAME, ns, null, true);
}
- public final SOAPEnvelope createSOAPEnvelope(SOAPMessage message, OMXMLParserWrapper builder) {
- return createAxiomElement(getSOAPHelper().getEnvelopeClass(), message, SOAPConstants.SOAPENVELOPE_LOCAL_NAME, null, builder, false);
- }
-
- public final SOAPHeader createSOAPHeader(SOAPEnvelope parent, OMXMLParserWrapper builder) {
- SOAPHelper helper = getSOAPHelper();
- return createSOAPElement(helper.getHeaderClass(), parent, helper.getHeaderQName(), builder);
- }
-
public final SOAPHeader createSOAPHeader(SOAPEnvelope parent) {
- return createSOAPHeader(parent, null);
+ SOAPHelper helper = getSOAPHelper();
+ return createSOAPElement(helper.getHeaderClass(), parent, helper.getHeaderQName(), null);
}
public final SOAPHeader createSOAPHeader() {
- return createSOAPHeader(null, null);
+ return createSOAPHeader(null);
}
public final SOAPHeaderBlock createSOAPHeaderBlock(String localName, OMNamespace ns, SOAPHeader parent) {
@@ -136,10 +126,6 @@ public abstract class SOAPFactoryImpl ex
return createAxiomElement(getSOAPHelper().getHeaderBlockClass(), null, localName, ns, null, true);
}
- public final SOAPHeaderBlock createSOAPHeaderBlock(String localName, SOAPHeader parent, OMXMLParserWrapper builder) {
- return createAxiomElement(getSOAPHelper().getHeaderBlockClass(), parent, localName, null, builder, false);
- }
-
public final SOAPHeaderBlock createSOAPHeaderBlock(OMDataSource source) {
AxiomSOAPHeaderBlock element = createNode(getSOAPHelper().getHeaderBlockClass());
element.init(source);
@@ -152,88 +138,64 @@ public abstract class SOAPFactoryImpl ex
return element;
}
- public final SOAPBody createSOAPBody(SOAPEnvelope parent, OMXMLParserWrapper builder) {
- SOAPHelper helper = getSOAPHelper();
- return createSOAPElement(helper.getBodyClass(), parent, helper.getBodyQName(), builder);
- }
-
public final SOAPBody createSOAPBody(SOAPEnvelope parent) {
- return createSOAPBody(parent, null);
+ SOAPHelper helper = getSOAPHelper();
+ return createSOAPElement(helper.getBodyClass(), parent, helper.getBodyQName(), null);
}
public final SOAPBody createSOAPBody() {
- return createSOAPBody(null, null);
- }
-
- public final SOAPFault createSOAPFault(SOAPBody parent, OMXMLParserWrapper builder) {
- SOAPHelper helper = getSOAPHelper();
- return createSOAPElement(helper.getFaultClass(), parent, helper.getFaultQName(), builder);
+ return createSOAPBody(null);
}
public final SOAPFault createSOAPFault(SOAPBody parent) {
- return createSOAPFault(parent, (OMXMLParserWrapper)null);
+ SOAPHelper helper = getSOAPHelper();
+ return createSOAPElement(helper.getFaultClass(), parent, helper.getFaultQName(), null);
}
public final SOAPFault createSOAPFault() {
- return createSOAPFault(null, (OMXMLParserWrapper)null);
+ return createSOAPFault(null);
}
public final SOAPFault createSOAPFault(SOAPBody parent, Exception e) {
- SOAPFault fault = createSOAPFault(parent, (OMXMLParserWrapper)null);
+ SOAPFault fault = createSOAPFault(parent);
fault.setException(e);
return fault;
}
- public final SOAPFaultCode createSOAPFaultCode(SOAPFault parent, OMXMLParserWrapper builder) {
- SOAPHelper helper = getSOAPHelper();
- return createSOAPElement(helper.getFaultCodeClass(), parent, helper.getFaultCodeQName(), builder);
- }
-
public final SOAPFaultCode createSOAPFaultCode(SOAPFault parent) {
- return createSOAPFaultCode(parent, null);
+ SOAPHelper helper = getSOAPHelper();
+ return createSOAPElement(helper.getFaultCodeClass(), parent, helper.getFaultCodeQName(), null);
}
public final SOAPFaultCode createSOAPFaultCode() {
- return createSOAPFaultCode(null, null);
- }
-
- public final SOAPFaultReason createSOAPFaultReason(SOAPFault parent, OMXMLParserWrapper builder) {
- SOAPHelper helper = getSOAPHelper();
- return createSOAPElement(helper.getFaultReasonClass(), parent, helper.getFaultReasonQName(), builder);
+ return createSOAPFaultCode(null);
}
public final SOAPFaultReason createSOAPFaultReason(SOAPFault parent) {
- return createSOAPFaultReason(parent, null);
+ SOAPHelper helper = getSOAPHelper();
+ return createSOAPElement(helper.getFaultReasonClass(), parent, helper.getFaultReasonQName(), null);
}
public final SOAPFaultReason createSOAPFaultReason() {
- return createSOAPFaultReason(null, null);
- }
-
- public final SOAPFaultRole createSOAPFaultRole(SOAPFault parent, OMXMLParserWrapper builder) {
- SOAPHelper helper = getSOAPHelper();
- return createSOAPElement(helper.getFaultRoleClass(), parent, helper.getFaultRoleQName(), builder);
+ return createSOAPFaultReason(null);
}
public final SOAPFaultRole createSOAPFaultRole(SOAPFault parent) {
- return createSOAPFaultRole(parent, null);
+ SOAPHelper helper = getSOAPHelper();
+ return createSOAPElement(helper.getFaultRoleClass(), parent, helper.getFaultRoleQName(), null);
}
public final SOAPFaultRole createSOAPFaultRole() {
- return createSOAPFaultRole(null, null);
- }
-
- public final SOAPFaultDetail createSOAPFaultDetail(SOAPFault parent, OMXMLParserWrapper builder) {
- SOAPHelper helper = getSOAPHelper();
- return createSOAPElement(helper.getFaultDetailClass(), parent, helper.getFaultDetailQName(), builder);
+ return createSOAPFaultRole(null);
}
public final SOAPFaultDetail createSOAPFaultDetail(SOAPFault parent) {
- return createSOAPFaultDetail(parent, null);
+ SOAPHelper helper = getSOAPHelper();
+ return createSOAPElement(helper.getFaultDetailClass(), parent, helper.getFaultDetailQName(), null);
}
public final SOAPFaultDetail createSOAPFaultDetail() {
- return createSOAPFaultDetail(null, null);
+ return createSOAPFaultDetail(null);
}
public final SOAPMessage createDefaultSOAPMessage() {
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAP11BuilderHelper.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAP11BuilderHelper.java?rev=1726448&r1=1726447&r2=1726448&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAP11BuilderHelper.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAP11BuilderHelper.java Sat Jan 23 20:10:54 2016
@@ -20,57 +20,45 @@
package org.apache.axiom.soap.impl.common.builder;
import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.exception.OMBuilderException;
+import org.apache.axiom.om.impl.intf.AxiomElement;
import org.apache.axiom.soap.SOAP11Constants;
-import org.apache.axiom.soap.SOAPFault;
import org.apache.axiom.soap.SOAPProcessingException;
-import org.apache.axiom.soap.impl.builder.SOAPFactoryEx;
+import org.apache.axiom.soap.impl.intf.AxiomSOAP11FaultCode;
+import org.apache.axiom.soap.impl.intf.AxiomSOAP11FaultDetail;
+import org.apache.axiom.soap.impl.intf.AxiomSOAP11FaultReason;
+import org.apache.axiom.soap.impl.intf.AxiomSOAP11FaultRole;
import org.w3c.dom.Element;
import javax.xml.stream.XMLStreamReader;
public class SOAP11BuilderHelper extends SOAPBuilderHelper implements SOAP11Constants {
- private final SOAPFactoryEx factory;
private boolean faultcodePresent = false;
private boolean faultstringPresent = false;
- public SOAP11BuilderHelper(StAXSOAPModelBuilder builder, SOAPFactoryEx factory) {
- super(builder);
- this.factory = factory;
- }
-
- public OMElement handleEvent(XMLStreamReader parser,
+ public Class<? extends AxiomElement> handleEvent(XMLStreamReader parser,
OMElement parent,
int elementLevel) throws SOAPProcessingException {
this.parser = parser;
- OMElement element = null;
+ Class<? extends AxiomElement> elementType = null;
String localName = parser.getLocalName();
if (elementLevel == 4) {
if (SOAP_FAULT_CODE_LOCAL_NAME.equals(localName)) {
- element = factory.createSOAPFaultCode(
- (SOAPFault) parent, builder);
+ elementType = AxiomSOAP11FaultCode.class;
faultcodePresent = true;
} else if (SOAP_FAULT_STRING_LOCAL_NAME.equals(localName)) {
- element = factory.createSOAPFaultReason(
- (SOAPFault) parent, builder);
+ elementType = AxiomSOAP11FaultReason.class;
faultstringPresent = true;
} else if (SOAP_FAULT_ACTOR_LOCAL_NAME.equals(localName)) {
- element =
- factory.createSOAPFaultRole((SOAPFault) parent,
- builder);
+ elementType = AxiomSOAP11FaultRole.class;
} else if (SOAP_FAULT_DETAIL_LOCAL_NAME.equals(localName)) {
- element =
- factory.createSOAPFaultDetail((SOAPFault) parent,
- builder);
+ elementType = AxiomSOAP11FaultDetail.class;
} else {
- element =
- factory.createOMElement(
- localName, parent, builder);
+ elementType = AxiomElement.class;
}
} else if (elementLevel == 5) {
@@ -94,18 +82,13 @@ public class SOAP11BuilderHelper extends
throw new SOAPProcessingException(
"faultactor element should not have children");
} else {
- element =
- this.factory.createOMElement(
- localName, parent, builder);
+ elementType = AxiomElement.class;
}
} else if (elementLevel > 5) {
- element =
- this.factory.createOMElement(localName,
- parent,
- builder);
+ elementType = AxiomElement.class;
}
- return element;
+ return elementType;
}
}
\ No newline at end of file
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAP12BuilderHelper.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAP12BuilderHelper.java?rev=1726448&r1=1726447&r2=1726448&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAP12BuilderHelper.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAP12BuilderHelper.java Sat Jan 23 20:10:54 2016
@@ -19,22 +19,24 @@
package org.apache.axiom.soap.impl.common.builder;
-
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.impl.exception.OMBuilderException;
+import org.apache.axiom.om.impl.intf.AxiomElement;
import org.apache.axiom.soap.SOAP12Constants;
-import org.apache.axiom.soap.SOAPFault;
-import org.apache.axiom.soap.SOAPFaultCode;
-import org.apache.axiom.soap.SOAPFaultReason;
-import org.apache.axiom.soap.SOAPFaultSubCode;
import org.apache.axiom.soap.SOAPProcessingException;
-import org.apache.axiom.soap.impl.builder.SOAP12FactoryEx;
+import org.apache.axiom.soap.impl.intf.AxiomSOAP12FaultCode;
+import org.apache.axiom.soap.impl.intf.AxiomSOAP12FaultDetail;
+import org.apache.axiom.soap.impl.intf.AxiomSOAP12FaultNode;
+import org.apache.axiom.soap.impl.intf.AxiomSOAP12FaultReason;
+import org.apache.axiom.soap.impl.intf.AxiomSOAP12FaultRole;
+import org.apache.axiom.soap.impl.intf.AxiomSOAP12FaultSubCode;
+import org.apache.axiom.soap.impl.intf.AxiomSOAP12FaultText;
+import org.apache.axiom.soap.impl.intf.AxiomSOAP12FaultValue;
import javax.xml.stream.XMLStreamReader;
import java.util.Vector;
public class SOAP12BuilderHelper extends SOAPBuilderHelper {
- private final SOAP12FactoryEx factory;
private boolean codePresent = false;
private boolean reasonPresent = false;
private boolean nodePresent = false;
@@ -50,17 +52,12 @@ public class SOAP12BuilderHelper extends
private boolean processingDetailElements = false;
private Vector detailElementNames;
- public SOAP12BuilderHelper(StAXSOAPModelBuilder builder, SOAP12FactoryEx factory) {
- super(builder);
- this.factory = factory;
- }
-
- public OMElement handleEvent(XMLStreamReader parser,
+ public Class<? extends AxiomElement> handleEvent(XMLStreamReader parser,
OMElement parent,
int elementLevel) throws SOAPProcessingException {
this.parser = parser;
- OMElement element = null;
+ Class<? extends AxiomElement> elementType = null;
if (elementLevel == 4) {
if (parser.getLocalName().equals(
@@ -69,9 +66,7 @@ public class SOAP12BuilderHelper extends
throw new OMBuilderException(
"Multiple Code element encountered");
} else {
- element =
- factory.createSOAPFaultCode((SOAPFault) parent,
- builder);
+ elementType = AxiomSOAP12FaultCode.class;
codePresent = true;
codeprocessing = true;
}
@@ -83,9 +78,7 @@ public class SOAP12BuilderHelper extends
throw new OMBuilderException(
"Multiple Reason Element encountered");
} else {
- element =
- factory.createSOAPFaultReason(
- (SOAPFault) parent, builder);
+ elementType = AxiomSOAP12FaultReason.class;
reasonPresent = true;
reasonProcessing = true;
}
@@ -112,9 +105,7 @@ public class SOAP12BuilderHelper extends
throw new OMBuilderException(
"Multiple Node element encountered");
} else {
- element =
- factory.createSOAPFaultNode(
- (SOAPFault) parent, builder);
+ elementType = AxiomSOAP12FaultNode.class;
nodePresent = true;
}
} else {
@@ -134,9 +125,7 @@ public class SOAP12BuilderHelper extends
throw new OMBuilderException(
"Multiple Role element encountered");
} else {
- element =
- factory.createSOAPFaultRole(
- (SOAPFault) parent, builder);
+ elementType = AxiomSOAP12FaultRole.class;
rolePresent = true;
}
} else {
@@ -156,9 +145,7 @@ public class SOAP12BuilderHelper extends
throw new OMBuilderException(
"Multiple detail element encountered");
} else {
- element =
- factory.createSOAPFaultDetail(
- (SOAPFault) parent, builder);
+ elementType = AxiomSOAP12FaultDetail.class;
detailPresent = true;
}
} else {
@@ -182,9 +169,7 @@ public class SOAP12BuilderHelper extends
if (parser.getLocalName().equals(
SOAP12Constants.SOAP_FAULT_VALUE_LOCAL_NAME)) {
if (!valuePresent) {
- element =
- factory.createSOAPFaultValue(
- (SOAPFaultCode) parent, builder);
+ elementType = AxiomSOAP12FaultValue.class;
valuePresent = true;
codeprocessing = false;
} else {
@@ -196,9 +181,7 @@ public class SOAP12BuilderHelper extends
SOAP12Constants.SOAP_FAULT_SUB_CODE_LOCAL_NAME)) {
if (!subcodePresent) {
if (valuePresent) {
- element =
- factory.createSOAPFaultSubCode(
- (SOAPFaultCode) parent, builder);
+ elementType = AxiomSOAP12FaultSubCode.class;
subcodePresent = true;
subCodeProcessing = true;
} else {
@@ -220,9 +203,7 @@ public class SOAP12BuilderHelper extends
SOAP12Constants.SOAP_FAULT_REASON_LOCAL_NAME)) {
if (parser.getLocalName().equals(
SOAP12Constants.SOAP_FAULT_TEXT_LOCAL_NAME)) {
- element =
- factory.createSOAPFaultText(
- (SOAPFaultReason) parent, builder);
+ elementType = AxiomSOAP12FaultText.class;
reasonProcessing = false;
} else {
throw new OMBuilderException(
@@ -231,9 +212,7 @@ public class SOAP12BuilderHelper extends
}
} else if (parent.getLocalName().equals(
SOAP12Constants.SOAP_FAULT_DETAIL_LOCAL_NAME)) {
- element =
- this.factory.createOMElement(
- parser.getLocalName(), parent, builder);
+ elementType = AxiomElement.class;
processingDetailElements = true;
detailElementNames = new Vector();
detailElementNames.add(parser.getLocalName());
@@ -254,9 +233,7 @@ public class SOAP12BuilderHelper extends
throw new OMBuilderException(
"multiple subCode value encountered");
} else {
- element =
- factory.createSOAPFaultValue(
- (SOAPFaultSubCode) parent, builder);
+ elementType = AxiomSOAP12FaultValue.class;
subcodeValuePresent = true;
subSubcodePresent = false;
subCodeProcessing = false;
@@ -265,10 +242,7 @@ public class SOAP12BuilderHelper extends
SOAP12Constants.SOAP_FAULT_SUB_CODE_LOCAL_NAME)) {
if (subcodeValuePresent) {
if (!subSubcodePresent) {
- element =
- factory.createSOAPFaultSubCode(
- (SOAPFaultSubCode) parent,
- builder);
+ elementType = AxiomSOAP12FaultSubCode.class;
subcodeValuePresent = false;
subSubcodePresent = true;
subCodeProcessing = true;
@@ -297,11 +271,7 @@ public class SOAP12BuilderHelper extends
}
if (localNameExist) {
detailElementNames.setSize(detailElementLevel);
- element =
- this.factory.createOMElement(
- parser.getLocalName(),
- parent,
- builder);
+ elementType = AxiomElement.class;
detailElementNames.add(parser.getLocalName());
}
@@ -312,6 +282,6 @@ public class SOAP12BuilderHelper extends
elementLevel);
}
}
- return element;
+ return elementType;
}
}
\ No newline at end of file
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAPBuilderHelper.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAPBuilderHelper.java?rev=1726448&r1=1726447&r2=1726448&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAPBuilderHelper.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAPBuilderHelper.java Sat Jan 23 20:10:54 2016
@@ -20,19 +20,15 @@
package org.apache.axiom.soap.impl.common.builder;
import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.impl.intf.AxiomElement;
import org.apache.axiom.soap.SOAPProcessingException;
import javax.xml.stream.XMLStreamReader;
public abstract class SOAPBuilderHelper {
- protected final StAXSOAPModelBuilder builder;
protected XMLStreamReader parser;
- protected SOAPBuilderHelper(StAXSOAPModelBuilder builder) {
- this.builder = builder;
- }
-
- public abstract OMElement handleEvent(XMLStreamReader parser,
+ public abstract Class<? extends AxiomElement> handleEvent(XMLStreamReader parser,
OMElement element,
int elementLevel) throws SOAPProcessingException;
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/StAXSOAPModelBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/StAXSOAPModelBuilder.java?rev=1726448&r1=1726447&r2=1726448&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/StAXSOAPModelBuilder.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/StAXSOAPModelBuilder.java Sat Jan 23 20:10:54 2016
@@ -31,6 +31,7 @@ import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.impl.builder.CustomBuilder;
import org.apache.axiom.om.impl.builder.Detachable;
import org.apache.axiom.om.impl.common.builder.StAXOMBuilder;
+import org.apache.axiom.om.impl.intf.AxiomElement;
import org.apache.axiom.soap.SOAP11Constants;
import org.apache.axiom.soap.SOAP11Version;
import org.apache.axiom.soap.SOAP12Constants;
@@ -39,13 +40,11 @@ import org.apache.axiom.soap.SOAPBody;
import org.apache.axiom.soap.SOAPConstants;
import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axiom.soap.SOAPFactory;
-import org.apache.axiom.soap.SOAPHeader;
import org.apache.axiom.soap.SOAPMessage;
import org.apache.axiom.soap.SOAPModelBuilder;
import org.apache.axiom.soap.SOAPProcessingException;
import org.apache.axiom.soap.impl.builder.OMMetaFactoryEx;
-import org.apache.axiom.soap.impl.builder.SOAP12FactoryEx;
-import org.apache.axiom.soap.impl.builder.SOAPFactoryEx;
+import org.apache.axiom.soap.impl.intf.SOAPFactoryEx;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -150,8 +149,9 @@ public class StAXSOAPModelBuilder extend
return newElement;
}
- protected OMElement constructNode(OMContainer parent, String elementName) {
- OMElement element;
+ @Override
+ protected Class<? extends AxiomElement> determineElementType(OMContainer parent, String elementName) {
+ Class<? extends AxiomElement> elementType;
if (elementLevel == 1) {
// Now I've found a SOAP Envelope, now create SOAPEnvelope here.
@@ -181,7 +181,7 @@ public class StAXSOAPModelBuilder extend
"Expected " + soapFactory.getSoapVersionURI(), SOAP12Constants.FAULT_CODE_SENDER);
}
- element = soapFactory.createSOAPEnvelope((SOAPMessage)parent, this);
+ elementType = soapFactory.getSOAPHelper().getEnvelopeClass();
} else if (elementLevel == 2) {
String elementNS = parser.getNamespaceURI();
@@ -197,24 +197,20 @@ public class StAXSOAPModelBuilder extend
getSenderFaultCode());
}
headerPresent = true;
- element =
- soapFactory.createSOAPHeader((SOAPEnvelope) parent,
- this);
+ elementType = soapFactory.getSOAPHelper().getHeaderClass();
} else if (elementName.equals(SOAPConstants.BODY_LOCAL_NAME)) {
if (bodyPresent) {
throw new SOAPProcessingException("Multiple body elements encountered",
getSenderFaultCode());
}
bodyPresent = true;
- element =
- soapFactory.createSOAPBody((SOAPEnvelope) parent,
- this);
+ elementType = soapFactory.getSOAPHelper().getBodyClass();
} else {
throw new SOAPProcessingException(elementName + " is not supported here.",
getSenderFaultCode());
}
} else if (soapFactory.getSOAPVersion() == SOAP11Version.getSingleton() && bodyPresent) {
- element = soapFactory.createOMElement(parser.getLocalName(), parent, this);
+ elementType = AxiomElement.class;
} else {
throw new SOAPProcessingException("Disallowed element found inside Envelope : {"
+ elementNS + "}" + elementName);
@@ -225,9 +221,7 @@ public class StAXSOAPModelBuilder extend
// this is a headerblock
try {
- element =
- soapFactory.createSOAPHeaderBlock(elementName, (SOAPHeader) parent,
- this);
+ elementType = soapFactory.getSOAPHelper().getHeaderBlockClass();
} catch (SOAPProcessingException e) {
throw new SOAPProcessingException("Can not create SOAPHeader block",
getReceiverFaultCode(), e);
@@ -237,22 +231,21 @@ public class StAXSOAPModelBuilder extend
elementName.equals(SOAPConstants.BODY_FAULT_LOCAL_NAME) &&
soapFactory.getSoapVersionURI().equals(parser.getNamespaceURI())) {
// this is a SOAP fault
- element = soapFactory.createSOAPFault((SOAPBody) parent, this);
+ elementType = soapFactory.getSOAPHelper().getFaultClass();
processingFault = true;
if (soapFactory.getSOAPVersion() == SOAP12Version.getSingleton()) {
- builderHelper = new SOAP12BuilderHelper(this, (SOAP12FactoryEx)soapFactory);
+ builderHelper = new SOAP12BuilderHelper();
} else if (soapFactory.getSOAPVersion() == SOAP11Version.getSingleton()) {
- builderHelper = new SOAP11BuilderHelper(this, soapFactory);
+ builderHelper = new SOAP11BuilderHelper();
}
} else if (elementLevel > 3 && processingFault) {
- element = builderHelper.handleEvent(parser, (OMElement)parent, elementLevel);
+ elementType = builderHelper.handleEvent(parser, (OMElement)parent, elementLevel);
} else {
// this is neither of above. Just create an element
- element = soapFactory.createOMElement(elementName, parent,
- this);
+ elementType = AxiomElement.class;
}
- return element;
+ return elementType;
}
private String getSenderFaultCode() {
Copied: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/intf/SOAPFactoryEx.java (from r1725804, webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/SOAPFactoryEx.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/intf/SOAPFactoryEx.java?p2=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/intf/SOAPFactoryEx.java&p1=webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/SOAPFactoryEx.java&r1=1725804&r2=1726448&rev=1726448&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/SOAPFactoryEx.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/intf/SOAPFactoryEx.java Sat Jan 23 20:10:54 2016
@@ -16,22 +16,12 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.axiom.soap.impl.builder;
+package org.apache.axiom.soap.impl.intf;
import org.apache.axiom.om.OMXMLParserWrapper;
-import org.apache.axiom.om.impl.builder.OMFactoryEx;
-import org.apache.axiom.soap.SOAPBody;
-import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.om.impl.intf.OMFactoryEx;
import org.apache.axiom.soap.SOAPFactory;
-import org.apache.axiom.soap.SOAPFault;
-import org.apache.axiom.soap.SOAPFaultCode;
-import org.apache.axiom.soap.SOAPFaultDetail;
-import org.apache.axiom.soap.SOAPFaultReason;
-import org.apache.axiom.soap.SOAPFaultRole;
-import org.apache.axiom.soap.SOAPHeader;
-import org.apache.axiom.soap.SOAPHeaderBlock;
import org.apache.axiom.soap.SOAPMessage;
-import org.apache.axiom.soap.SOAPProcessingException;
/**
* Interface that is used internally by Axiom and that should not be considered being part of the
@@ -39,82 +29,8 @@ import org.apache.axiom.soap.SOAPProcess
*/
public interface SOAPFactoryEx extends SOAPFactory, OMFactoryEx {
- SOAPMessage createSOAPMessage(OMXMLParserWrapper builder);
-
- SOAPEnvelope createSOAPEnvelope(SOAPMessage message, OMXMLParserWrapper builder);
-
- /**
- * @param envelope
- * @param builder
- * @return Returns SOAPHeader.
- */
- SOAPHeader createSOAPHeader(SOAPEnvelope envelope,
- OMXMLParserWrapper builder);
-
- /**
- * @param localName
- * @param parent
- * @param builder
- * @return Returns SOAPHeaderBlock.
- */
- SOAPHeaderBlock createSOAPHeaderBlock(String localName,
- SOAPHeader parent,
- OMXMLParserWrapper builder)
- throws SOAPProcessingException;
-
- /**
- * @param parent
- * @param builder
- * @return Returns SOAPFault.
- */
- SOAPFault createSOAPFault(SOAPBody parent,
- OMXMLParserWrapper builder);
+ SOAPHelper getSOAPHelper();
- /**
- * @param envelope
- * @param builder
- * @return Returns SOAPBody.
- */
- SOAPBody createSOAPBody(SOAPEnvelope envelope,
- OMXMLParserWrapper builder);
-
- /**
- * Code eii under SOAPFault (parent)
- *
- * @param parent
- * @param builder
- * @return Returns SOAPFaultCode.
- */
- SOAPFaultCode createSOAPFaultCode(SOAPFault parent,
- OMXMLParserWrapper builder);
-
- /**
- * Reason eii under SOAPFault (parent)
- *
- * @param parent
- * @param builder
- * @return Returns SOAPFaultReason.
- */
- SOAPFaultReason createSOAPFaultReason(SOAPFault parent,
- OMXMLParserWrapper builder);
-
- /**
- * Role eii under SOAPFault (parent)
- *
- * @param parent
- * @param builder
- * @return Returns SOAPFaultRole.
- */
- SOAPFaultRole createSOAPFaultRole(SOAPFault parent,
- OMXMLParserWrapper builder);
+ SOAPMessage createSOAPMessage(OMXMLParserWrapper builder);
- /**
- * Role eii under SOAPFault (parent)
- *
- * @param parent
- * @param builder
- * @return Returns SOAPFaultDetail.
- */
- SOAPFaultDetail createSOAPFaultDetail(SOAPFault parent,
- OMXMLParserWrapper builder);
}
Modified: webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMBuilder.java?rev=1726448&r1=1726447&r2=1726448&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMBuilder.java (original)
+++ webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMBuilder.java Sat Jan 23 20:10:54 2016
@@ -33,6 +33,7 @@ import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMException;
import org.apache.axiom.om.impl.builder.Detachable;
import org.apache.axiom.om.impl.common.builder.StAXOMBuilder;
+import org.apache.axiom.om.impl.intf.AxiomElement;
@SuppressWarnings("unchecked")
public class FOMBuilder extends StAXOMBuilder implements Constants {
@@ -91,8 +92,20 @@ public class FOMBuilder extends StAXOMBu
}
@Override
- protected OMElement constructNode(OMContainer parent, String name) {
- return fomfactory.createElementFromBuilder(parser.getName(), parent, this);
+ protected Class<? extends AxiomElement> determineElementType(OMContainer parent,
+ String elementName) {
+ return fomfactory.determineElementType(parser.getName(), parent);
+ }
+
+ @Override
+ protected void postProcessElement(OMElement element) {
+ if (element instanceof FOMContent) {
+ Content.Type type = getContentType();
+ ((FOMContent)element).setContentType(type == null ? Content.Type.TEXT : type);
+ } else if (element instanceof FOMText) {
+ Text.Type type = getTextType();
+ ((FOMText)element).setTextType(type == null ? Text.Type.TEXT : type);
+ }
}
public <T extends Element> Document<T> getFomDocument() {
Modified: webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMFactory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMFactory.java?rev=1726448&r1=1726447&r2=1726448&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMFactory.java (original)
+++ webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMFactory.java Sat Jan 23 20:10:54 2016
@@ -510,24 +510,15 @@ public class FOMFactory extends OMFactor
return createElement(elementType, qname, parent);
}
- protected OMElement createElementFromBuilder(QName qname, OMContainer parent, FOMBuilder builder) {
+ protected Class<? extends FOMElement> determineElementType(QName qname, OMContainer parent) {
Class<? extends FOMElement> elementType = elementTypeMap.get(qname);
- if (elementType == null) {
- if (parent instanceof ExtensibleElement || parent instanceof Document) {
- elementType = FOMExtensibleElement.class;
- } else {
- elementType = FOMElement.class;
- }
+ if (elementType != null) {
+ return elementType;
+ } else if (parent instanceof ExtensibleElement || parent instanceof Document) {
+ return FOMExtensibleElement.class;
+ } else {
+ return FOMElement.class;
}
- OMElement element = createAxiomElement(elementType, parent, qname.getLocalPart(), null, builder, false);
- if (element instanceof FOMContent) {
- Content.Type type = builder.getContentType();
- ((FOMContent)element).setContentType(type == null ? Content.Type.TEXT : type);
- } else if (element instanceof FOMText) {
- Text.Type type = builder.getTextType();
- ((FOMText)element).setTextType(type == null ? Text.Type.TEXT : type);
- }
- return element;
}
public Factory registerExtension(ExtensionFactory factory) {