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/02/04 21:22:55 UTC
svn commit: r1728552 - in /webservices/axiom/trunk:
aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/
aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/
implementations/fom-impl/src/main/java/org/apache/...
Author: veithen
Date: Thu Feb 4 20:22:54 2016
New Revision: 1728552
URL: http://svn.apache.org/viewvc?rev=1728552&view=rev
Log:
Prefer composition over inheritance.
Modified:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Model.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PlainXMLModel.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/soap/impl/common/builder/SOAPModel.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/FOMFactory.java
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Model.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Model.java?rev=1728552&r1=1728551&r2=1728552&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Model.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Model.java Thu Feb 4 20:22:54 2016
@@ -23,6 +23,8 @@ import org.apache.axiom.om.impl.intf.Axi
import org.apache.axiom.om.impl.intf.AxiomElement;
public interface Model {
+ void validateEventType(int eventType);
+
Class<? extends AxiomDocument> getDocumentType();
/**
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PlainXMLModel.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PlainXMLModel.java?rev=1728552&r1=1728551&r2=1728552&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PlainXMLModel.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PlainXMLModel.java Thu Feb 4 20:22:54 2016
@@ -28,6 +28,10 @@ public final class PlainXMLModel impleme
private PlainXMLModel() {}
@Override
+ public void validateEventType(int eventType) {
+ }
+
+ @Override
public Class<? extends AxiomDocument> getDocumentType() {
return AxiomDocument.class;
}
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=1728552&r1=1728551&r2=1728552&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 Thu Feb 4 20:22:54 2016
@@ -815,7 +815,7 @@ public class StAXOMBuilder implements Bu
* @return Returns OMNode.
* @throws OMException
*/
- protected OMNode createDTD() throws OMException {
+ private OMNode createDTD() throws OMException {
DTDReader dtdReader;
try {
dtdReader = (DTDReader)parser.getProperty(DTDReader.PROPERTY);
@@ -872,11 +872,11 @@ public class StAXOMBuilder implements Bu
* @return Returns OMNode.
* @throws OMException
*/
- protected OMNode createPI() throws OMException {
+ private OMNode createPI() throws OMException {
return omfactory.createOMProcessingInstruction(target, parser.getPITarget(), parser.getPIData(), true);
}
- protected OMNode createEntityReference() {
+ private OMNode createEntityReference() {
return omfactory.createOMEntityReference(target, parser.getLocalName(), parser.getText(), true);
}
@@ -1004,6 +1004,7 @@ public class StAXOMBuilder implements Bu
close();
}
}
+ model.validateEventType(event);
return event;
} catch (XMLStreamException ex) {
throw new DeferredParsingException(ex);
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAPModel.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAPModel.java?rev=1728552&r1=1728551&r2=1728552&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAPModel.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAPModel.java Thu Feb 4 20:22:54 2016
@@ -19,6 +19,8 @@
package org.apache.axiom.soap.impl.common.builder;
+import javax.xml.stream.XMLStreamConstants;
+
import org.apache.axiom.om.OMContainer;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.impl.common.builder.Model;
@@ -50,6 +52,18 @@ public final class SOAPModel implements
private SOAPBuilderHelper builderHelper;
@Override
+ public void validateEventType(int eventType) {
+ switch (eventType) {
+ case XMLStreamConstants.DTD:
+ throw new SOAPProcessingException("SOAP message MUST NOT contain a Document Type Declaration(DTD)");
+ case XMLStreamConstants.PROCESSING_INSTRUCTION:
+ throw new SOAPProcessingException("SOAP message MUST NOT contain Processing Instructions(PI)");
+ case XMLStreamConstants.ENTITY_REFERENCE:
+ throw new SOAPProcessingException("A SOAP message cannot contain entity references because it must not have a DTD");
+ }
+ }
+
+ @Override
public Class<? extends AxiomDocument> getDocumentType() {
return AxiomSOAPMessage.class;
}
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=1728552&r1=1728551&r2=1728552&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 Thu Feb 4 20:22:54 2016
@@ -24,7 +24,6 @@ import java.io.Closeable;
import org.apache.axiom.core.NodeFactory;
import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.OMSerializable;
import org.apache.axiom.om.impl.builder.Detachable;
import org.apache.axiom.om.impl.common.builder.NodePostProcessor;
@@ -33,7 +32,6 @@ import org.apache.axiom.soap.SOAPEnvelop
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axiom.soap.SOAPMessage;
import org.apache.axiom.soap.SOAPModelBuilder;
-import org.apache.axiom.soap.SOAPProcessingException;
import org.apache.axiom.soap.impl.intf.AxiomSOAPEnvelope;
import org.apache.axiom.soap.impl.intf.AxiomSOAPMessage;
@@ -68,20 +66,6 @@ public class StAXSOAPModelBuilder extend
return (SOAPEnvelope)getDocumentElement();
}
- /** Method createDTD. Overriding the default behaviour as a SOAPMessage should not have a DTD. */
- protected OMNode createDTD() throws OMException {
- throw new SOAPProcessingException("SOAP message MUST NOT contain a Document Type Declaration(DTD)");
- }
-
- /** Method createPI. Overriding the default behaviour as a SOAP Message should not have a PI. */
- protected OMNode createPI() throws OMException {
- throw new SOAPProcessingException("SOAP message MUST NOT contain Processing Instructions(PI)");
- }
-
- protected OMNode createEntityReference() {
- throw new SOAPProcessingException("A SOAP message cannot contain entity references because it must not have a DTD");
- }
-
public SOAPMessage getSOAPMessage() {
return (SOAPMessage)getDocument();
}
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=1728552&r1=1728551&r2=1728552&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 Thu Feb 4 20:22:54 2016
@@ -511,6 +511,10 @@ public class FOMFactory extends OMFactor
}
@Override
+ public void validateEventType(int eventType) {
+ }
+
+ @Override
public Class<? extends AxiomDocument> getDocumentType() {
return FOMDocument.class;
}