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);
}