Author: veithen
Date: Sat Aug 29 16:39:00 2015
New Revision: 1700058

URL: http://svn.apache.org/r1700058
Log:
Clone NS aware attributes using the logic in the core model.

Modified:
    
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreNSAwareAttributeSupport.aj
    
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreNSAwareNamedNode.java
    
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomNamedInformationItemSupport.aj
    
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NSAwareAttribute.java
    
webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMAttributeImpl.java

Modified: 
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreNSAwareAttributeSupport.aj
URL: 
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreNSAwareAttributeSupport.aj?rev=1700058&r1=1700057&r2=1700058&view=diff
==============================================================================
--- 
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreNSAwareAttributeSupport.aj
 (original)
+++ 
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreNSAwareAttributeSupport.aj
 Sat Aug 29 16:39:00 2015
@@ -24,7 +24,9 @@ public aspect CoreNSAwareAttributeSuppor
     }
     
     public final CoreNode CoreNSAwareAttribute.shallowClone(ClonePolicy 
policy, Object options) {
-        // TODO
-        throw new UnsupportedOperationException();
+        CoreNSAwareAttribute clone = 
coreGetNodeFactory().createNSAwareAttribute();
+        clone.coreSetName(this);
+        clone.coreSetType(coreGetType());
+        return clone;
     }
 }

Modified: 
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreNSAwareNamedNode.java
URL: 
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreNSAwareNamedNode.java?rev=1700058&r1=1700057&r2=1700058&view=diff
==============================================================================
--- 
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreNSAwareNamedNode.java
 (original)
+++ 
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreNSAwareNamedNode.java
 Sat Aug 29 16:39:00 2015
@@ -27,4 +27,5 @@ public interface CoreNSAwareNamedNode {
     void coreSetPrefix(String prefix);
     String coreGetLocalName();
     void coreSetName(String namespaceURI, String localName, String prefix);
+    void coreSetName(CoreNSAwareNamedNode other);
 }

Modified: 
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomNamedInformationItemSupport.aj
URL: 
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomNamedInformationItemSupport.aj?rev=1700058&r1=1700057&r2=1700058&view=diff
==============================================================================
--- 
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomNamedInformationItemSupport.aj
 (original)
+++ 
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomNamedInformationItemSupport.aj
 Sat Aug 29 16:39:00 2015
@@ -20,6 +20,7 @@ package org.apache.axiom.om.impl.common;
 
 import javax.xml.namespace.QName;
 
+import org.apache.axiom.core.CoreNSAwareNamedNode;
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.impl.util.OMSerializerUtil;
@@ -165,6 +166,12 @@ public aspect AxiomNamedInformationItemS
         qName = null;
     }
 
+    public final void 
AxiomNamedInformationItem.coreSetName(CoreNSAwareNamedNode other) {
+        localName = other.coreGetLocalName();
+        namespace = ((AxiomNamedInformationItem)other).getNamespace();
+        qName = null;
+    }
+    
     public void AxiomNamedInformationItem.updateLocalName() {
         throw new IllegalStateException();
     }

Modified: 
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NSAwareAttribute.java
URL: 
http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NSAwareAttribute.java?rev=1700058&r1=1700057&r2=1700058&view=diff
==============================================================================
--- 
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NSAwareAttribute.java
 (original)
+++ 
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NSAwareAttribute.java
 Sat Aug 29 16:39:00 2015
@@ -49,7 +49,6 @@ public final class NSAwareAttribute exte
 
     @Override
     final ParentNode shallowClone(OMCloneOptions options, ParentNode 
targetParent, ClonePolicy policy) {
-        // Note: targetParent is always null here
-        return new NSAwareAttribute(getLocalName(), getNamespace(), 
coreGetType(), getOMFactory());
+        return (ParentNode)shallowClone(policy, options);
     }
 }

Modified: 
webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMAttributeImpl.java
URL: 
http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMAttributeImpl.java?rev=1700058&r1=1700057&r2=1700058&view=diff
==============================================================================
--- 
webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMAttributeImpl.java
 (original)
+++ 
webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMAttributeImpl.java
 Sat Aug 29 16:39:00 2015
@@ -23,6 +23,7 @@ import org.apache.axiom.om.OMCloneOption
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMInformationItem;
 import org.apache.axiom.om.impl.common.AxiomAttribute;
+import org.apache.axiom.om.impl.common.Policies;
 
 /** Class OMAttributeImpl */
 public class OMAttributeImpl extends Attribute implements AxiomAttribute {
@@ -31,6 +32,6 @@ public class OMAttributeImpl extends Att
     }
 
     public OMInformationItem clone(OMCloneOptions options) {
-        return getOMFactory().createOMAttribute(getLocalName(), 
getNamespace(), getAttributeValue());
+        return (AxiomAttribute)coreClone(Policies.CLONE_POLICY, options);
     }
 }


Reply via email to