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/03/01 21:22:35 UTC

svn commit: r1733133 - in /webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom: om/impl/mixin/ soap/impl/intf/ soap/impl/mixin/

Author: veithen
Date: Tue Mar  1 20:22:35 2016
New Revision: 1733133

URL: http://svn.apache.org/viewvc?rev=1733133&view=rev
Log:
Improve the sequence API.

Modified:
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/intf/AxiomSOAPFault.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAP11FaultSupport.aj
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAP12FaultClassifierSupport.aj
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAP12FaultSupport.aj
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPFaultSupport.aj

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj?rev=1733133&r1=1733132&r2=1733133&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj Tue Mar  1 20:22:35 2016
@@ -63,6 +63,7 @@ import org.apache.axiom.om.impl.intf.Axi
 import org.apache.axiom.om.impl.intf.AxiomContainer;
 import org.apache.axiom.om.impl.intf.AxiomElement;
 import org.apache.axiom.om.impl.intf.AxiomNamespaceDeclaration;
+import org.apache.axiom.om.impl.intf.Sequence;
 import org.apache.axiom.util.namespace.MapBasedNamespaceContext;
 import org.apache.axiom.util.stax.XMLStreamIOException;
 import org.apache.axiom.util.stax.XMLStreamReaderUtils;
@@ -255,15 +256,8 @@ public aspect AxiomElementSupport {
         coreSetNextSibling(null);
     }
     
-    public <T extends OMElement> void AxiomElement.insertChild(Class[] sequence, Class<T> type, T newChild) {
-        int pos = -1;
-        for (int i=0; i<sequence.length; i++) {
-            if (sequence[i] == type) {
-                pos = i;
-                break;
-            }
-        }
-        if (pos == -1) {
+    public <T extends OMElement> void AxiomElement.insertChild(Sequence sequence, int pos, T newChild) {
+        if (!sequence.item(pos).isInstance(newChild)) {
             throw new IllegalArgumentException();
         }
         OMNode child = getFirstOMChild();
@@ -274,7 +268,7 @@ public aspect AxiomElementSupport {
                     // the right position
                     return;
                 }
-                if (type.isInstance(child)) {
+                if (sequence.item(pos).isInstance(child)) {
                     // Replace the existing child
                     child.insertSiblingAfter(newChild);
                     child.detach();
@@ -283,7 +277,7 @@ public aspect AxiomElementSupport {
                 // isAfter indicates if the new child should be inserted after the current child
                 boolean isAfter = false;
                 for (int i=0; i<pos; i++) {
-                    if (sequence[i].isInstance(child)) {
+                    if (sequence.item(i).isInstance(child)) {
                         isAfter = true;
                         break;
                     }

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/intf/AxiomSOAPFault.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/intf/AxiomSOAPFault.java?rev=1733133&r1=1733132&r2=1733133&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/intf/AxiomSOAPFault.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/intf/AxiomSOAPFault.java Tue Mar  1 20:22:35 2016
@@ -18,8 +18,9 @@
  */
 package org.apache.axiom.soap.impl.intf;
 
+import org.apache.axiom.om.impl.intf.Sequence;
 import org.apache.axiom.soap.SOAPFault;
 
 public interface AxiomSOAPFault extends AxiomSOAPElement, SOAPFault {
-    Class[] getSequence();
+    Sequence getSequence();
 }

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAP11FaultSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAP11FaultSupport.aj?rev=1733133&r1=1733132&r2=1733133&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAP11FaultSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAP11FaultSupport.aj Tue Mar  1 20:22:35 2016
@@ -19,6 +19,7 @@
 package org.apache.axiom.soap.impl.mixin;
 
 import org.apache.axiom.core.CoreNode;
+import org.apache.axiom.om.impl.intf.Sequence;
 import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.SOAPFaultCode;
 import org.apache.axiom.soap.SOAPFaultDetail;
@@ -28,14 +29,14 @@ import org.apache.axiom.soap.SOAPFaultRo
 import org.apache.axiom.soap.impl.intf.AxiomSOAP11Fault;
 
 public aspect AxiomSOAP11FaultSupport {
-    private static final Class<?>[] sequence = { SOAPFaultCode.class, SOAPFaultReason.class,
-            SOAPFaultRole.class, SOAPFaultDetail.class };
+    private static final Sequence sequence = new Sequence(SOAPFaultCode.class, SOAPFaultReason.class,
+            SOAPFaultRole.class, SOAPFaultDetail.class);
 
     public final Class<? extends CoreNode> AxiomSOAP11Fault.coreGetNodeClass() {
         return AxiomSOAP11Fault.class;
     }
     
-    public final Class[] AxiomSOAP11Fault.getSequence() {
+    public final Sequence AxiomSOAP11Fault.getSequence() {
         return sequence;
     }
     

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAP12FaultClassifierSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAP12FaultClassifierSupport.aj?rev=1733133&r1=1733132&r2=1733133&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAP12FaultClassifierSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAP12FaultClassifierSupport.aj Tue Mar  1 20:22:35 2016
@@ -21,6 +21,7 @@ package org.apache.axiom.soap.impl.mixin
 import javax.xml.namespace.QName;
 
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.impl.intf.Sequence;
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAPFaultSubCode;
 import org.apache.axiom.soap.SOAPFaultValue;
@@ -28,7 +29,7 @@ import org.apache.axiom.soap.impl.factor
 import org.apache.axiom.soap.impl.intf.AxiomSOAP12FaultClassifier;
 
 public aspect AxiomSOAP12FaultClassifierSupport {
-    private static final Class<?>[] sequence = { SOAPFaultValue.class, SOAPFaultSubCode.class };
+    private static final Sequence sequence = new Sequence(SOAPFaultValue.class, SOAPFaultSubCode.class);
     
     public final boolean AxiomSOAP12FaultClassifier.isChildElementAllowed(OMElement child) {
         return child instanceof SOAPFaultValue || child instanceof SOAPFaultSubCode;
@@ -39,7 +40,7 @@ public aspect AxiomSOAP12FaultClassifier
     }
 
     public final void AxiomSOAP12FaultClassifier.setValue(SOAPFaultValue value) {
-        insertChild(sequence, SOAPFaultValue.class, value);
+        insertChild(sequence, 0, value);
     }
     
     public final SOAPFaultSubCode AxiomSOAP12FaultClassifier.getSubCode() {
@@ -47,7 +48,7 @@ public aspect AxiomSOAP12FaultClassifier
     }
     
     public final void AxiomSOAP12FaultClassifier.setSubCode(SOAPFaultSubCode subCode) {
-        insertChild(sequence, SOAPFaultSubCode.class, subCode);
+        insertChild(sequence, 1, subCode);
     }
 
     public final QName AxiomSOAP12FaultClassifier.getValueAsQName() {

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAP12FaultSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAP12FaultSupport.aj?rev=1733133&r1=1733132&r2=1733133&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAP12FaultSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAP12FaultSupport.aj Tue Mar  1 20:22:35 2016
@@ -19,6 +19,7 @@
 package org.apache.axiom.soap.impl.mixin;
 
 import org.apache.axiom.core.CoreNode;
+import org.apache.axiom.om.impl.intf.Sequence;
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAPFaultCode;
 import org.apache.axiom.soap.SOAPFaultDetail;
@@ -28,19 +29,19 @@ import org.apache.axiom.soap.SOAPFaultRo
 import org.apache.axiom.soap.impl.intf.AxiomSOAP12Fault;
 
 public aspect AxiomSOAP12FaultSupport {
-    private static final Class<?>[] sequence = { SOAPFaultCode.class, SOAPFaultReason.class,
-            SOAPFaultNode.class, SOAPFaultRole.class, SOAPFaultDetail.class };
+    private static final Sequence sequence = new Sequence(SOAPFaultCode.class, SOAPFaultReason.class,
+            SOAPFaultNode.class, SOAPFaultRole.class, SOAPFaultDetail.class);
 
     public final Class<? extends CoreNode> AxiomSOAP12Fault.coreGetNodeClass() {
         return AxiomSOAP12Fault.class;
     }
     
-    public final Class[] AxiomSOAP12Fault.getSequence() {
+    public final Sequence AxiomSOAP12Fault.getSequence() {
         return sequence;
     }
     
     public final void AxiomSOAP12Fault.setNode(SOAPFaultNode node) {
-        insertChild(sequence, SOAPFaultNode.class, node);
+        insertChild(sequence, 2, node);
     }
 
     public final SOAPFaultCode AxiomSOAP12Fault.getCode() {

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPFaultSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPFaultSupport.aj?rev=1733133&r1=1733132&r2=1733133&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPFaultSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPFaultSupport.aj Tue Mar  1 20:22:35 2016
@@ -24,6 +24,7 @@ import java.io.StringWriter;
 import javax.xml.namespace.QName;
 
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.impl.intf.Sequence;
 import org.apache.axiom.soap.SOAPConstants;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axiom.soap.SOAPFaultCode;
@@ -40,19 +41,21 @@ public aspect AxiomSOAPFaultSupport {
     }
 
     public final void AxiomSOAPFault.setCode(SOAPFaultCode soapFaultCode) {
-        insertChild(getSequence(), SOAPFaultCode.class, soapFaultCode);
+        insertChild(getSequence(), 0, soapFaultCode);
     }
 
     public final void AxiomSOAPFault.setReason(SOAPFaultReason reason) {
-        insertChild(getSequence(), SOAPFaultReason.class, reason);
+        insertChild(getSequence(), 1, reason);
     }
 
     public final void AxiomSOAPFault.setRole(SOAPFaultRole role) {
-        insertChild(getSequence(), SOAPFaultRole.class, role);
+        Sequence sequence = getSequence();
+        insertChild(sequence, sequence.index(SOAPFaultRole.class), role);
     }
 
     public final void AxiomSOAPFault.setDetail(SOAPFaultDetail detail) {
-        insertChild(getSequence(), SOAPFaultDetail.class, detail);
+        Sequence sequence = getSequence();
+        insertChild(sequence, sequence.index(SOAPFaultDetail.class), detail);
     }
 
     public final void AxiomSOAPFault.setException(Exception e) {