Author: veithen Date: Thu Oct 1 07:11:33 2015 New Revision: 1706187 URL: http://svn.apache.org/viewvc?rev=1706187&view=rev Log: Use DetachPolicy for coreSetAttribute.
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreElement.java webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreElementSupport.aj webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMElementSupport.aj webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomElementSupport.aj Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreElement.java URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreElement.java?rev=1706187&r1=1706186&r2=1706187&view=diff ============================================================================== --- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreElement.java (original) +++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreElement.java Thu Oct 1 07:11:33 2015 @@ -86,18 +86,12 @@ public interface CoreElement extends Cor * the {@link AttributeMatcher} implementation to use * @param attr * the new attribute to add - * @param changeDocumentOfReplacedAttribute - * specifies if the owner document of the replaced attribute (if any) should be - * changed - * @param newDocument - * the new owner document for the replaced attribute, or <code>null</code> if the - * attribute will have its own owner document (which may be created lazily at a later - * moment); only meaningful if <code>changeDocumentOfReplacedAttribute</code> is - * <code>true</code + * @param detachPolicy + * determines the new owner document for the replaced attribute * @return the attribute that was replaced by the new attribute, or <code>null</code> if no * matching attribute existed. */ - CoreAttribute coreSetAttribute(AttributeMatcher matcher, CoreAttribute attr, boolean changeDocumentOfReplacedAttribute, CoreDocument newDocument); + CoreAttribute coreSetAttribute(AttributeMatcher matcher, CoreAttribute attr, DetachPolicy detachPolicy); /** * Append an attribute to this element. The attribute is simply added at the end of the list of Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreElementSupport.aj URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreElementSupport.aj?rev=1706187&r1=1706186&r2=1706187&view=diff ============================================================================== --- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreElementSupport.aj (original) +++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreElementSupport.aj Thu Oct 1 07:11:33 2015 @@ -91,7 +91,7 @@ public aspect CoreElementSupport { } } - public final CoreAttribute CoreElement.coreSetAttribute(AttributeMatcher matcher, CoreAttribute attr, boolean changeDocumentOfReplacedAttribute, CoreDocument newDocument) { + public final CoreAttribute CoreElement.coreSetAttribute(AttributeMatcher matcher, CoreAttribute attr, DetachPolicy detachPolicy) { if (attr.coreGetOwnerElement() == this) { // TODO: document this and add assertion return attr; @@ -118,7 +118,7 @@ public aspect CoreElementSupport { } else { previousAttr.internalSetNextAttribute(attr); } - existingAttr.internalUnsetOwnerElement(changeDocumentOfReplacedAttribute ? newDocument : coreGetOwnerDocument(true)); + existingAttr.internalUnsetOwnerElement(detachPolicy.getNewOwnerDocument(this)); attr.internalSetNextAttribute(existingAttr.coreGetNextAttribute()); existingAttr.internalSetNextAttribute(null); } Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMElementSupport.aj URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMElementSupport.aj?rev=1706187&r1=1706186&r2=1706187&view=diff ============================================================================== --- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMElementSupport.aj (original) +++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMElementSupport.aj Thu Oct 1 07:11:33 2015 @@ -159,7 +159,7 @@ public aspect DOMElementSupport { // Must be a DOM1 (namespace unaware) attribute matcher = Policies.DOM1_ATTRIBUTE_MATCHER; } - return (DOMAttribute)coreSetAttribute(matcher, newAttr, false, null); + return (DOMAttribute)coreSetAttribute(matcher, newAttr, Policies.DETACH_POLICY); } } Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomElementSupport.aj URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomElementSupport.aj?rev=1706187&r1=1706186&r2=1706187&view=diff ============================================================================== --- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomElementSupport.aj (original) +++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomElementSupport.aj Thu Oct 1 07:11:33 2015 @@ -278,7 +278,7 @@ public aspect AxiomElementSupport { } public final void AxiomElement.internalAppendAttribute(OMAttribute attr) { - coreSetAttribute(Policies.ATTRIBUTE_MATCHER, (AxiomAttribute)attr, true, null); + coreSetAttribute(Policies.ATTRIBUTE_MATCHER, (AxiomAttribute)attr, Policies.DETACH_POLICY); } public final OMAttribute AxiomElement.addAttribute(OMAttribute attr){ @@ -356,7 +356,7 @@ public aspect AxiomElementSupport { public final void AxiomElement.addNamespaceDeclaration(OMNamespace ns) { AxiomNamespaceDeclaration decl = coreGetNodeFactory().createNode(AxiomNamespaceDeclaration.class); decl.setDeclaredNamespace(ns); - coreSetAttribute(Policies.NAMESPACE_DECLARATION_MATCHER, decl, true, null); + coreSetAttribute(Policies.NAMESPACE_DECLARATION_MATCHER, decl, Policies.DETACH_POLICY); } @SuppressWarnings("rawtypes")