This is an automated email from the ASF dual-hosted git repository.

veithen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ws-axiom.git


The following commit(s) were added to refs/heads/master by this push:
     new 5dd65b5  Eliminate more usages of the old NodeFactory
5dd65b5 is described below

commit 5dd65b568714bbd727c5d7db1b747f27d5d6771b
Author: Andreas Veithen <[email protected]>
AuthorDate: Tue Nov 30 00:23:58 2021 +0000

    Eliminate more usages of the old NodeFactory
---
 .../main/java/org/apache/axiom/core/AttributeMatcher.java  |  6 +++---
 .../src/main/java/org/apache/axiom/core/CoreNode.java      |  3 ---
 .../org/apache/axiom/core/NSAwareAttributeMatcher.java     |  4 ++--
 .../org/apache/axiom/core/NamespaceDeclarationMatcher.java |  4 ++--
 .../org/apache/axiom/core/impl/mixin/CoreElementMixin.java |  2 +-
 .../org/apache/axiom/core/impl/mixin/CoreNodeMixin.java    | 11 -----------
 .../src/main/java/org/apache/axiom/dom/DOMSemantics.java   |  6 +++---
 .../org/apache/axiom/dom/impl/mixin/DOMTextNodeMixin.java  |  2 +-
 .../axiom/om/impl/common/builder/CustomBuilderManager.java | 14 ++++++++------
 .../org/apache/axiom/om/impl/mixin/AxiomElementMixin.java  |  2 +-
 10 files changed, 21 insertions(+), 33 deletions(-)

diff --git 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/AttributeMatcher.java 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/AttributeMatcher.java
index 1ffdc2b..f3dd3fe 100644
--- 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/AttributeMatcher.java
+++ 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/AttributeMatcher.java
@@ -70,8 +70,8 @@ public interface AttributeMatcher {
      * <code>prefix</code> and <code>value</code> parameters are those passed 
to
      * {@link CoreElement#coreSetAttribute(AttributeMatcher, String, String, 
String, String)}.
      * 
-     * @param element
-     *            the instance to be used to invoke {@link 
CoreNode#coreCreateNode(Class)}
+     * @param nodeFactory
+     *            the node factory to be used to create the new attribute node
      * @param namespaceURI
      *            see above
      * @param name
@@ -83,7 +83,7 @@ public interface AttributeMatcher {
      * @return
      * @throws CoreModelException 
      */
-    CoreAttribute createAttribute(CoreElement element, String namespaceURI, 
String name, String prefix, String value) throws CoreModelException;
+    CoreAttribute createAttribute(NodeFactory2 nodeFactory, String 
namespaceURI, String name, String prefix, String value) throws 
CoreModelException;
     
     /**
      * Update an existing attribute. The values of the <code>prefix</code> and 
<code>value</code>
diff --git 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/CoreNode.java 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/CoreNode.java
index 910a091..8620088 100644
--- a/mixins/core-mixins/src/main/java/org/apache/axiom/core/CoreNode.java
+++ b/mixins/core-mixins/src/main/java/org/apache/axiom/core/CoreNode.java
@@ -41,8 +41,6 @@ public interface CoreNode {
     
     NodeFactory coreGetNodeFactory();
     
-    <T extends CoreNode> T coreCreateNode(Class<T> type);
-    
     /**
      * Get the node type.
      * 
@@ -70,7 +68,6 @@ public interface CoreNode {
     void internalSetFlag(int flag, boolean value);
     int internalGetFlags(int mask);
     void internalSetFlags(int mask, int flags);
-    void updateFiliation(CoreNode creator);
     <T> void initAncillaryData(ClonePolicy<T> policy, T options, CoreNode 
other);
     <T> CoreNode internalClone(ClonePolicy<T> policy, T options, 
CoreParentNode targetParent) throws CoreModelException;
 }
diff --git 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/NSAwareAttributeMatcher.java
 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/NSAwareAttributeMatcher.java
index 0bfda5b..11a021e 100644
--- 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/NSAwareAttributeMatcher.java
+++ 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/NSAwareAttributeMatcher.java
@@ -88,8 +88,8 @@ public final class NSAwareAttributeMatcher implements 
AttributeMatcher {
     }
 
     @Override
-    public CoreAttribute createAttribute(CoreElement element, String 
namespaceURI, String name, String prefix, String value) throws 
CoreModelException {
-        CoreNSAwareAttribute attr = 
element.coreCreateNode(CoreNSAwareAttribute.class);
+    public CoreAttribute createAttribute(NodeFactory2 nodeFactory, String 
namespaceURI, String name, String prefix, String value) throws 
CoreModelException {
+        CoreNSAwareAttribute attr = nodeFactory.createNSAwareAttribute();
         attr.coreSetName(namespaceURI, name, prefix);
         attr.coreSetCharacterData(value, null);
         return attr;
diff --git 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/NamespaceDeclarationMatcher.java
 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/NamespaceDeclarationMatcher.java
index ada871e..446507a 100644
--- 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/NamespaceDeclarationMatcher.java
+++ 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/NamespaceDeclarationMatcher.java
@@ -51,8 +51,8 @@ public final class NamespaceDeclarationMatcher implements 
AttributeMatcher {
     }
 
     @Override
-    public CoreAttribute createAttribute(CoreElement element, String 
namespaceURI, String name, String prefix, String value) {
-        CoreNamespaceDeclaration decl = 
element.coreCreateNode(CoreNamespaceDeclaration.class);
+    public CoreAttribute createAttribute(NodeFactory2 nodeFactory, String 
namespaceURI, String name, String prefix, String value) {
+        CoreNamespaceDeclaration decl = 
nodeFactory.createNamespaceDeclaration();
         decl.coreSetDeclaredNamespace(name, value);
         return decl;
     }
diff --git 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreElementMixin.java
 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreElementMixin.java
index 187d350..be7cd20 100644
--- 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreElementMixin.java
+++ 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreElementMixin.java
@@ -88,7 +88,7 @@ public abstract class CoreElementMixin implements CoreElement 
{
             attr = attr.coreGetNextAttribute();
         }
         if (attr == null) {
-            CoreAttribute newAttr = matcher.createAttribute(this, 
namespaceURI, name, prefix, value);
+            CoreAttribute newAttr = 
matcher.createAttribute(coreGetNodeFactory().getFactory2(), namespaceURI, name, 
prefix, value);
             if (previousAttr == null) {
                 coreAppendAttribute(newAttr);
             } else {
diff --git 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreNodeMixin.java
 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreNodeMixin.java
index cb84d69..f8a7d5b 100644
--- 
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreNodeMixin.java
+++ 
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreNodeMixin.java
@@ -37,17 +37,6 @@ public abstract class CoreNodeMixin implements CoreNode {
     }
     
     @Override
-    public final <T extends CoreNode> T coreCreateNode(Class<T> type) {
-        T node = coreGetNodeFactory().createNode(type);
-        node.updateFiliation(this);
-        return node;
-    }
-    
-    @Override
-    public void updateFiliation(CoreNode creator) {
-    }
-    
-    @Override
     public final CoreDocument coreGetOwnerDocument(boolean create) {
         CoreNode root = getRootOrOwnerDocument();
         if (root instanceof CoreDocument) {
diff --git 
a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/DOMSemantics.java 
b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/DOMSemantics.java
index 64c6823..ce1b6e1 100644
--- a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/DOMSemantics.java
+++ b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/DOMSemantics.java
@@ -24,13 +24,13 @@ import java.util.Set;
 import org.apache.axiom.core.AttributeMatcher;
 import org.apache.axiom.core.ClonePolicy;
 import org.apache.axiom.core.CoreAttribute;
-import org.apache.axiom.core.CoreElement;
 import org.apache.axiom.core.CoreModelException;
 import org.apache.axiom.core.CoreNSUnawareAttribute;
 import org.apache.axiom.core.CoreNode;
 import org.apache.axiom.core.DetachPolicy;
 import org.apache.axiom.core.NSAwareAttributeMatcher;
 import org.apache.axiom.core.NamespaceDeclarationMatcher;
+import org.apache.axiom.core.NodeFactory2;
 import org.apache.axiom.core.NodeType;
 import org.apache.axiom.core.Semantics;
 
@@ -95,8 +95,8 @@ public final class DOMSemantics implements Semantics {
         }
 
         @Override
-        public CoreAttribute createAttribute(CoreElement element, String 
namespaceURI, String name, String prefix, String value) throws 
CoreModelException {
-            CoreNSUnawareAttribute attr = 
element.coreCreateNode(CoreNSUnawareAttribute.class);
+        public CoreAttribute createAttribute(NodeFactory2 nodeFactory, String 
namespaceURI, String name, String prefix, String value) throws 
CoreModelException {
+            CoreNSUnawareAttribute attr = 
nodeFactory.createNSUnawareAttribute();
             attr.coreSetName(name);
             attr.coreSetCharacterData(value, null);
             // TODO: set type?
diff --git 
a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMTextNodeMixin.java
 
b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMTextNodeMixin.java
index 57ede81..1ea1c97 100644
--- 
a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMTextNodeMixin.java
+++ 
b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMTextNodeMixin.java
@@ -126,7 +126,7 @@ public abstract class DOMTextNodeMixin implements 
DOMTextNode {
             }
             String newValue = value.substring(offset);
             deleteData(offset, value.length());
-            DOMText newText = coreCreateNode(DOMText.class);
+            DOMText newText = getDOMNodeFactory().createCharacterDataNode();
             newText.coreSetCharacterData(newValue);
             if (coreHasParent()) {
                 coreInsertSiblingAfter(newText);
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/builder/CustomBuilderManager.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/builder/CustomBuilderManager.java
index 0fe4a4e..5de289b 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/builder/CustomBuilderManager.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/builder/CustomBuilderManager.java
@@ -31,6 +31,8 @@ import org.apache.axiom.om.impl.common.AxiomSemantics;
 import org.apache.axiom.om.impl.common.OMNamespaceImpl;
 import org.apache.axiom.om.impl.intf.AxiomElement;
 import org.apache.axiom.om.impl.intf.AxiomSourcedElement;
+import org.apache.axiom.om.impl.intf.factory.AxiomElementType;
+import org.apache.axiom.om.impl.intf.factory.AxiomNodeFactory;
 import org.apache.axiom.soap.impl.intf.AxiomSOAPElement;
 import org.apache.axiom.soap.impl.intf.AxiomSOAPHeaderBlock;
 import org.apache.axiom.soap.impl.intf.soap11.AxiomSOAP11HeaderBlock;
@@ -93,18 +95,18 @@ final class CustomBuilderManager implements BuilderListener 
{
                                 log.debug("Invoking custom builder " + 
customBuilder);
                             }
                             OMDataSource dataSource = 
customBuilder.create(element);
-                            Class<? extends AxiomSourcedElement> type;
+                            AxiomElementType<? extends AxiomSourcedElement> 
type;
                             if (element instanceof AxiomSOAP11HeaderBlock) {
-                                type = AxiomSOAP11HeaderBlock.class;
+                                type = 
AxiomNodeFactory::createSOAP11HeaderBlock;
                             } else if (element instanceof 
AxiomSOAP12HeaderBlock) {
-                                type = AxiomSOAP12HeaderBlock.class;
+                                type = 
AxiomNodeFactory::createSOAP12HeaderBlock;
                             } else {
-                                type = AxiomSourcedElement.class;
+                                type = AxiomNodeFactory::createSourcedElement;
                             }
+                            AxiomSourcedElement newElement = 
type.create((AxiomNodeFactory)element.coreGetNodeFactory().getFactory2());
                             if (log.isDebugEnabled()) {
-                                log.debug("Replacing element with new sourced 
element of type " + type);
+                                log.debug("Replacing element with new sourced 
element of type " + newElement.getClass().getName());
                             }
-                            AxiomSourcedElement newElement = 
element.coreCreateNode(type);
                             newElement.init(localName, new 
OMNamespaceImpl(namespaceURI, null), dataSource);
                             try {
                                 element.coreReplaceWith(newElement, 
AxiomSemantics.INSTANCE);
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementMixin.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementMixin.java
index 3d73e41..2119b1a 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementMixin.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementMixin.java
@@ -397,7 +397,7 @@ public abstract class AxiomElementMixin implements 
AxiomElement {
 
     @Override
     public final void addNamespaceDeclaration(OMNamespace ns) {
-        AxiomNamespaceDeclaration decl = 
coreGetNodeFactory().createNode(AxiomNamespaceDeclaration.class);
+        AxiomNamespaceDeclaration decl = 
getNodeFactory().createNamespaceDeclaration();
         decl.setDeclaredNamespace(ns);
         coreSetAttribute(AxiomSemantics.NAMESPACE_DECLARATION_MATCHER, decl, 
AxiomSemantics.INSTANCE);
     }

Reply via email to