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 2021/11/30 00:24:07 UTC
[ws-axiom] branch master updated: Eliminate more usages of the old NodeFactory
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 <an...@gmail.com>
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);
}