Author: veithen
Date: Sun Nov 15 13:59:31 2015
New Revision: 1714454
URL: http://svn.apache.org/viewvc?rev=1714454&view=rev
Log:
Introduce an interface that will group together all the API semantics
(DetachPolicy, ClonePolicy, etc.).
Added:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/Semantics.java
(with props)
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMSemantics.java
- copied, changed from r1714139,
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/Policies.java
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/FOMSemantics.java
- copied, changed from r1711547,
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/Policies.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomSemantics.java
- copied, changed from r1714139,
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/Policies.java
Removed:
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/Policies.java
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/Policies.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/Policies.java
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/AbstractNodeIterator.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/AttributeIterator.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/AttributeMatcher.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreAttribute.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreAttributeSupport.aj
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreCharacterDataNodeSupport.aj
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreCharacterDataSinkNode.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreChildNode.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreChildNodeSupport.aj
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/core-aspects/src/main/java/org/apache/axiom/core/CoreParentNode.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreParentNodeSupport.aj
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/ElementMatcher.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/ElementsIterator.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NSAwareAttributeMatcher.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NamespaceDeclarationMatcher.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NodeIterator.java
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMAttributeSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMCDATASectionSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMCommentSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentFragmentSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMElementSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNodeSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMParentNodeSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMProcessingInstructionSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMTextNodeSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/ElementsByTagName.java
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/ElementsByTagNameNS.java
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaAttributeMixin.aj
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaElementMixin.aj
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaProcessingInstructionMixin.aj
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/CategoryContainerMixin.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomAttributeSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomChildNodeSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomCommentSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomContainerSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomDocumentSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomElementSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomInformationItemSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomNamespaceDeclarationSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomProcessingInstructionSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomTextSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ParentNode.java
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMElement.java
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/AbstractNodeIterator.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/AbstractNodeIterator.java?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/AbstractNodeIterator.java
(original)
+++
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/AbstractNodeIterator.java
Sun Nov 15 13:59:31 2015
@@ -26,7 +26,7 @@ public abstract class AbstractNodeIterat
private final Axis axis;
private final Class<T> type;
private final ExceptionTranslator exceptionTranslator;
- private final DetachPolicy detachPolicy;
+ private final Semantics semantics;
private CoreNode currentNode;
/**
@@ -38,12 +38,12 @@ public abstract class AbstractNodeIterat
private boolean hasNext;
private int depth;
- public AbstractNodeIterator(CoreParentNode startNode, Axis axis, Class<T>
type, ExceptionTranslator exceptionTranslator, DetachPolicy detachPolicy) {
+ public AbstractNodeIterator(CoreParentNode startNode, Axis axis, Class<T>
type, ExceptionTranslator exceptionTranslator, Semantics semantics) {
this.startNode = startNode;
this.axis = axis;
this.type = type;
this.exceptionTranslator = exceptionTranslator;
- this.detachPolicy = detachPolicy;
+ this.semantics = semantics;
}
protected abstract boolean matches(CoreNode node) throws
CoreModelException;
@@ -130,7 +130,7 @@ public abstract class AbstractNodeIterat
hasNext();
if (currentNode instanceof CoreChildNode) {
// try {
- ((CoreChildNode)currentNode).coreDetach(detachPolicy);
+ ((CoreChildNode)currentNode).coreDetach(semantics);
// } catch (CoreModelException ex) {
// throw exceptionTranslator.toUncheckedException(ex);
// }
@@ -141,6 +141,6 @@ public abstract class AbstractNodeIterat
public final void replace(CoreChildNode newNode) throws CoreModelException
{
// Move to next node before replacing the current one
hasNext();
- ((CoreChildNode)currentNode).coreReplaceWith(newNode, detachPolicy);
+ ((CoreChildNode)currentNode).coreReplaceWith(newNode, semantics);
}
}
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/AttributeIterator.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/AttributeIterator.java?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/AttributeIterator.java
(original)
+++
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/AttributeIterator.java
Sun Nov 15 13:59:31 2015
@@ -25,20 +25,20 @@ import java.util.NoSuchElementException;
final class AttributeIterator<T extends CoreAttribute,S> implements
Iterator<S> {
private final Class<T> type;
private final Mapper<T,S> mapper;
- private final DetachPolicy detachPolicy;
+ private final Semantics semantics;
private CoreAttribute currentAttribute;
private CoreAttribute nextAttribute;
private boolean nextAttributeSet;
- private AttributeIterator(CoreAttribute firstAttribute, Class<T> type,
Mapper<T,S> mapper, DetachPolicy detachPolicy) {
+ private AttributeIterator(CoreAttribute firstAttribute, Class<T> type,
Mapper<T,S> mapper, Semantics semantics) {
this.type = type;
this.mapper = mapper;
- this.detachPolicy = detachPolicy;
+ this.semantics = semantics;
nextAttribute = firstAttribute;
nextAttributeSet = true;
}
- static <T extends CoreAttribute,S> Iterator<S> create(CoreElement element,
Class<T> type, Mapper<T,S> mapper, DetachPolicy detachPolicy) {
+ static <T extends CoreAttribute,S> Iterator<S> create(CoreElement element,
Class<T> type, Mapper<T,S> mapper, Semantics semantics) {
CoreAttribute attribute = element.coreGetFirstAttribute();
while (attribute != null && !type.isInstance(attribute)) {
attribute = attribute.coreGetNextAttribute();
@@ -46,7 +46,7 @@ final class AttributeIterator<T extends
if (attribute == null) {
return Collections.<S>emptyList().iterator();
} else {
- return new AttributeIterator<T,S>(attribute, type, mapper,
detachPolicy);
+ return new AttributeIterator<T,S>(attribute, type, mapper,
semantics);
}
}
@@ -80,7 +80,7 @@ final class AttributeIterator<T extends
} else {
// Ensure that the next attribute is known before we remove the
current one.
hasNext();
- currentAttribute.coreRemove(detachPolicy);
+ currentAttribute.coreRemove(semantics);
currentAttribute = null;
}
}
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/AttributeMatcher.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/AttributeMatcher.java?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/AttributeMatcher.java
(original)
+++
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/AttributeMatcher.java
Sun Nov 15 13:59:31 2015
@@ -29,7 +29,7 @@ public interface AttributeMatcher {
* {@link CoreElement#coreSetAttribute(AttributeMatcher, String, String,
String, String)}, or
* they are determined by the return values of {@link
#getNamespaceURI(CoreAttribute)} and
* {@link #getName(CoreAttribute)} if
- * {@link CoreElement#coreSetAttribute(AttributeMatcher, CoreAttribute,
DetachPolicy)}
+ * {@link CoreElement#coreSetAttribute(AttributeMatcher, CoreAttribute,
Semantics)}
* is used. It is
* not required that these parameters strictly represent the namespace URI
and local name of the
* attribute. Their exact meaning is defined by the particular {@link
AttributeMatcher}
@@ -47,7 +47,7 @@ public interface AttributeMatcher {
/**
* Get the <tt>namespaceURI</tt> parameter for an existing attribute. This
method is used by
- * {@link CoreElement#coreSetAttribute(AttributeMatcher, CoreAttribute,
DetachPolicy)}
+ * {@link CoreElement#coreSetAttribute(AttributeMatcher, CoreAttribute,
Semantics)}
* which passes its return value as parameter to {@link
#matches(CoreAttribute, String, String)}.
*
* @param attr the attribute
@@ -57,7 +57,7 @@ public interface AttributeMatcher {
/**
* Get the <tt>name</tt> parameter for an existing attribute. This method
is used by
- * {@link CoreElement#coreSetAttribute(AttributeMatcher, CoreAttribute,
DetachPolicy)}
+ * {@link CoreElement#coreSetAttribute(AttributeMatcher, CoreAttribute,
Semantics)}
* which passes its return value as parameter to {@link
#matches(CoreAttribute, String, String)}.
*
* @param attr the attribute
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreAttribute.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreAttribute.java?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreAttribute.java
(original)
+++
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreAttribute.java
Sun Nov 15 13:59:31 2015
@@ -36,13 +36,13 @@ public interface CoreAttribute extends N
/**
* Remove this attribute from its owner element.
*
- * @param detachPolicy
- * the detach policy that determines the new owner document for
the attribute
+ * @param semantics
+ * the API semantics to use; determines the new owner document
for the attribute
* @return <code>true</code> if the attribute had an owner element and has
been removed from
* that element; <code>false</code> if the attribute didn't have
an owner element and no
* changes have been made
*/
- boolean coreRemove(DetachPolicy detachPolicy);
+ boolean coreRemove(Semantics semantics);
/**
* Get the attribute immediately following the current attribute.
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreAttributeSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreAttributeSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreAttributeSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreAttributeSupport.aj
Sun Nov 15 13:59:31 2015
@@ -96,11 +96,15 @@ public aspect CoreAttributeSupport {
nextAttribute = attr;
}
- public final boolean CoreAttribute.coreRemove(DetachPolicy detachPolicy) {
+ public final boolean CoreAttribute.coreRemove(Semantics semantics) {
+ return internalRemove(semantics, null);
+ }
+
+ public final boolean CoreAttribute.internalRemove(Semantics semantics,
CoreElement newOwner) {
if (owner instanceof CoreElement) {
CoreElement ownerElement = (CoreElement)owner;
CoreAttribute previousAttr = coreGetPreviousAttribute();
- owner = detachPolicy.getNewOwnerDocument(ownerElement);
+ owner = newOwner != null ? newOwner :
semantics.getDetachPolicy().getNewOwnerDocument(ownerElement);
if (previousAttr == null) {
ownerElement.internalSetFirstAttribute(nextAttribute);
} else {
@@ -109,6 +113,9 @@ public aspect CoreAttributeSupport {
nextAttribute = null;
return true;
} else {
+ if (newOwner != null) {
+ owner = newOwner;
+ }
return false;
}
}
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreCharacterDataNodeSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreCharacterDataNodeSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreCharacterDataNodeSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreCharacterDataNodeSupport.aj
Sun Nov 15 13:59:31 2015
@@ -44,7 +44,7 @@ public aspect CoreCharacterDataNodeSuppo
this.data = data;
}
- public final void CoreCharacterDataNode.coreSetCharacterData(Object data,
DetachPolicy detachPolicy) {
+ public final void CoreCharacterDataNode.coreSetCharacterData(Object data,
Semantics semantics) {
this.data = data;
}
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreCharacterDataSinkNode.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreCharacterDataSinkNode.java?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreCharacterDataSinkNode.java
(original)
+++
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreCharacterDataSinkNode.java
Sun Nov 15 13:59:31 2015
@@ -19,5 +19,5 @@
package org.apache.axiom.core;
public interface CoreCharacterDataSinkNode {
- void coreSetCharacterData(Object data, DetachPolicy detachPolicy);
+ void coreSetCharacterData(Object data, Semantics semantics);
}
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreChildNode.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreChildNode.java?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreChildNode.java
(original)
+++
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreChildNode.java
Sun Nov 15 13:59:31 2015
@@ -39,7 +39,7 @@ public interface CoreChildNode extends C
*/
CoreChildNode coreGetNextSiblingIfAvailable();
- void coreDetach(DetachPolicy detachPolicy);
+ void coreDetach(Semantics semantics);
/**
* Clone this node according to the provided policy.
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreChildNodeSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreChildNodeSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreChildNodeSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreChildNodeSupport.aj
Sun Nov 15 13:59:31 2015
@@ -195,11 +195,11 @@ public aspect CoreChildNodeSupport {
void CoreChildNode.beforeDetach() {}
- public final void CoreChildNode.coreDetach(DetachPolicy detachPolicy) {
- internalDetach(detachPolicy, null);
+ public final void CoreChildNode.coreDetach(Semantics semantics) {
+ internalDetach(semantics, null);
}
- final void CoreChildNode.internalDetach(DetachPolicy detachPolicy,
CoreParentNode newParent) {
+ final void CoreChildNode.internalDetach(Semantics semantics,
CoreParentNode newParent) {
CoreParentNode parent = coreGetParent();
if (parent != null) {
beforeDetach();
@@ -216,7 +216,7 @@ public aspect CoreChildNodeSupport {
nextSibling = null;
previousSibling = null;
if (newParent == null) {
- internalUnsetParent(detachPolicy.getNewOwnerDocument(parent));
+
internalUnsetParent(semantics.getDetachPolicy().getNewOwnerDocument(parent));
}
}
if (newParent != null) {
@@ -224,10 +224,10 @@ public aspect CoreChildNodeSupport {
}
}
- public final void CoreChildNode.coreReplaceWith(CoreChildNode newNode,
DetachPolicy detachPolicy) {
- newNode.coreDetach(DetachPolicy.NEW_DOCUMENT);
+ public final void CoreChildNode.coreReplaceWith(CoreChildNode newNode,
Semantics semantics) {
CoreParentNode parent = coreGetParent();
if (parent != null) {
+ newNode.internalDetach(null, parent);
beforeDetach();
if (previousSibling == null) {
parent.getContent(true).firstChild = newNode;
@@ -243,8 +243,7 @@ public aspect CoreChildNodeSupport {
newNode.nextSibling = nextSibling;
nextSibling = null;
}
- internalUnsetParent(detachPolicy.getNewOwnerDocument(parent));
- newNode.internalSetParent(parent);
+
internalUnsetParent(semantics.getDetachPolicy().getNewOwnerDocument(parent));
}
}
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=1714454&r1=1714453&r2=1714454&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
Sun Nov 15 13:59:31 2015
@@ -86,12 +86,12 @@ public interface CoreElement extends Cor
* the {@link AttributeMatcher} implementation to use
* @param attr
* the new attribute to add
- * @param detachPolicy
+ * @param semantics
* 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, DetachPolicy detachPolicy);
+ CoreAttribute coreSetAttribute(AttributeMatcher matcher, CoreAttribute
attr, Semantics semantics);
/**
* Append an attribute to this element. The attribute is simply added at
the end of the list of
@@ -117,9 +117,9 @@ public interface CoreElement extends Cor
* @return <code>true</code> if a matching attribute was found (and has
been removed),
* <code>false</code> if no matching attribute was found
*/
- boolean coreRemoveAttribute(AttributeMatcher matcher, String namespaceURI,
String name, DetachPolicy detachPolicy);
+ boolean coreRemoveAttribute(AttributeMatcher matcher, String namespaceURI,
String name, Semantics semantics);
- <T extends CoreAttribute,S> Iterator<S> coreGetAttributesByType(Class<T>
type, Mapper<T,S> mapper, DetachPolicy detachPolicy);
+ <T extends CoreAttribute,S> Iterator<S> coreGetAttributesByType(Class<T>
type, Mapper<T,S> mapper, Semantics semantics);
/**
* Look up the namespace URI associated to the given prefix.
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=1714454&r1=1714453&r2=1714454&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
Sun Nov 15 13:59:31 2015
@@ -57,18 +57,13 @@ public aspect CoreElementSupport {
}
public final void CoreElement.coreAppendAttribute(CoreAttribute attr) {
- attr.coreRemove(DetachPolicy.NEW_DOCUMENT);
- internalAppendAttribute(attr);
- }
-
- private void CoreElement.internalAppendAttribute(CoreAttribute attr) {
// TODO: we should probably check if the attribute is already owned by
the element
- attr.internalSetOwnerElement(this);
+ attr.internalRemove(null, this);
CoreAttribute lastAttribute = coreGetLastAttribute();
if (lastAttribute == null) {
firstAttribute = attr;
} else {
- lastAttribute.insertAttributeAfter(attr);
+ lastAttribute.internalSetNextAttribute(attr);
}
}
@@ -82,7 +77,7 @@ public aspect CoreElementSupport {
if (attr == null) {
CoreAttribute newAttr = matcher.createAttribute(this,
namespaceURI, name, prefix, value);
if (previousAttr == null) {
- internalAppendAttribute(newAttr);
+ coreAppendAttribute(newAttr);
} else {
previousAttr.insertAttributeAfter(newAttr);
}
@@ -91,12 +86,12 @@ public aspect CoreElementSupport {
}
}
- public final CoreAttribute CoreElement.coreSetAttribute(AttributeMatcher
matcher, CoreAttribute attr, DetachPolicy detachPolicy) {
+ public final CoreAttribute CoreElement.coreSetAttribute(AttributeMatcher
matcher, CoreAttribute attr, Semantics semantics) {
if (attr.coreGetOwnerElement() == this) {
// TODO: document this and add assertion
return attr;
}
- attr.coreRemove(DetachPolicy.NEW_DOCUMENT);
+ attr.internalRemove(null, this);
String namespaceURI = matcher.getNamespaceURI(attr);
String name = matcher.getName(attr);
CoreAttribute existingAttr = coreGetFirstAttribute();
@@ -105,7 +100,6 @@ public aspect CoreElementSupport {
previousAttr = existingAttr;
existingAttr = existingAttr.coreGetNextAttribute();
}
- attr.internalSetOwnerElement(this);
if (existingAttr == null) {
if (previousAttr == null) {
firstAttribute = attr;
@@ -118,25 +112,25 @@ public aspect CoreElementSupport {
} else {
previousAttr.internalSetNextAttribute(attr);
}
-
existingAttr.internalUnsetOwnerElement(detachPolicy.getNewOwnerDocument(this));
+
existingAttr.internalUnsetOwnerElement(semantics.getDetachPolicy().getNewOwnerDocument(this));
attr.internalSetNextAttribute(existingAttr.coreGetNextAttribute());
existingAttr.internalSetNextAttribute(null);
}
return existingAttr;
}
- public final boolean CoreElement.coreRemoveAttribute(AttributeMatcher
matcher, String namespaceURI, String name, DetachPolicy detachPolicy) {
+ public final boolean CoreElement.coreRemoveAttribute(AttributeMatcher
matcher, String namespaceURI, String name, Semantics semantics) {
CoreAttribute att = coreGetAttribute(matcher, namespaceURI, name);
if (att != null) {
- att.coreRemove(detachPolicy);
+ att.coreRemove(semantics);
return true;
} else {
return false;
}
}
- public final <T extends CoreAttribute,S> Iterator<S>
CoreElement.coreGetAttributesByType(Class<T> type, Mapper<T,S> mapper,
DetachPolicy detachPolicy) {
- return AttributeIterator.create(this, type, mapper, detachPolicy);
+ public final <T extends CoreAttribute,S> Iterator<S>
CoreElement.coreGetAttributesByType(Class<T> type, Mapper<T,S> mapper,
Semantics semantics) {
+ return AttributeIterator.create(this, type, mapper, semantics);
}
public abstract String CoreElement.getImplicitNamespaceURI(String prefix);
@@ -215,7 +209,7 @@ public aspect CoreElementSupport {
if (isExpanded()) {
CoreAttribute attr = o.coreGetFirstAttribute();
while (attr != null) {
- internalAppendAttribute((CoreAttribute)attr.coreClone(policy,
options));
+ coreAppendAttribute((CoreAttribute)attr.coreClone(policy,
options));
// TODO: needed?
// clonedAttr.coreSetSpecified(attr.coreGetSpecified());
attr = attr.coreGetNextAttribute();
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreParentNode.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreParentNode.java?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreParentNode.java
(original)
+++
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreParentNode.java
Sun Nov 15 13:59:31 2015
@@ -35,5 +35,5 @@ public interface CoreParentNode extends
void coreSetState(int state);
void build();
- <T extends CoreElement> NodeIterator<T> coreGetElements(Axis axis,
Class<T> type, ElementMatcher<? super T> matcher, String namespaceURI, String
name, ExceptionTranslator exceptionTranslator, DetachPolicy detachPolicy);
+ <T extends CoreElement> NodeIterator<T> coreGetElements(Axis axis,
Class<T> type, ElementMatcher<? super T> matcher, String namespaceURI, String
name, ExceptionTranslator exceptionTranslator, Semantics semantics);
}
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreParentNodeSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreParentNodeSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreParentNodeSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreParentNodeSupport.aj
Sun Nov 15 13:59:31 2015
@@ -186,7 +186,7 @@ public aspect CoreParentNodeSupport {
fragmentContent.lastChild = null;
}
- public final void CoreParentNode.coreRemoveChildren(DetachPolicy
detachPolicy) {
+ public final void CoreParentNode.coreRemoveChildren(Semantics semantics) {
if (getState() == COMPACT) {
coreSetState(COMPLETE);
content = null;
@@ -205,7 +205,7 @@ public aspect CoreParentNodeSupport {
updateState = false;
}
if (child != null) {
- CoreDocument newOwnerDocument =
detachPolicy.getNewOwnerDocument(this);
+ CoreDocument newOwnerDocument =
semantics.getDetachPolicy().getNewOwnerDocument(this);
do {
CoreChildNode nextSibling = child.nextSibling;
child.previousSibling = null;
@@ -288,16 +288,16 @@ public aspect CoreParentNodeSupport {
}
}
- public final void CoreParentNode.coreSetCharacterData(Object data,
DetachPolicy detachPolicy) {
- coreRemoveChildren(detachPolicy);
+ public final void CoreParentNode.coreSetCharacterData(Object data,
Semantics semantics) {
+ coreRemoveChildren(semantics);
if (data != null && (data instanceof CharacterData ||
((String)data).length() > 0)) {
coreSetState(COMPACT);
content = data;
}
}
- public final <T> NodeIterator<T> CoreParentNode.coreGetNodes(Axis axis,
Class<T> type, ExceptionTranslator exceptionTranslator, DetachPolicy
detachPolicy) {
- return new AbstractNodeIterator<T>(this, axis, type,
exceptionTranslator, detachPolicy) {
+ public final <T> NodeIterator<T> CoreParentNode.coreGetNodes(Axis axis,
Class<T> type, ExceptionTranslator exceptionTranslator, Semantics semantics) {
+ return new AbstractNodeIterator<T>(this, axis, type,
exceptionTranslator, semantics) {
@Override
protected boolean matches(CoreNode node) throws CoreModelException
{
return true;
@@ -305,8 +305,8 @@ public aspect CoreParentNodeSupport {
};
}
- public final <T extends CoreElement> NodeIterator<T>
CoreParentNode.coreGetElements(Axis axis, Class<T> type, ElementMatcher<? super
T> matcher, String namespaceURI, String name, ExceptionTranslator
exceptionTranslator, DetachPolicy detachPolicy) {
- return new ElementsIterator<T>(this, axis, type, matcher,
namespaceURI, name, exceptionTranslator, detachPolicy);
+ public final <T extends CoreElement> NodeIterator<T>
CoreParentNode.coreGetElements(Axis axis, Class<T> type, ElementMatcher<? super
T> matcher, String namespaceURI, String name, ExceptionTranslator
exceptionTranslator, Semantics semantics) {
+ return new ElementsIterator<T>(this, axis, type, matcher,
namespaceURI, name, exceptionTranslator, semantics);
}
public final <T> void
CoreParentNode.cloneChildrenIfNecessary(ClonePolicy<T> policy, T options,
CoreNode clone) {
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/ElementMatcher.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/ElementMatcher.java?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/ElementMatcher.java
(original)
+++
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/ElementMatcher.java
Sun Nov 15 13:59:31 2015
@@ -101,7 +101,7 @@ public interface ElementMatcher<T extend
/**
* Check if the given element matches. The values of the
<code>namespaceURI</code> and
* <code>name</code> parameters are those passed to
- * {@link CoreParentNode#coreGetElements(Axis, Class, ElementMatcher,
String, String, ExceptionTranslator, DetachPolicy)}.
+ * {@link CoreParentNode#coreGetElements(Axis, Class, ElementMatcher,
String, String, ExceptionTranslator, Semantics)}.
*
* @param element
* the element to check
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/ElementsIterator.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/ElementsIterator.java?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/ElementsIterator.java
(original)
+++
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/ElementsIterator.java
Sun Nov 15 13:59:31 2015
@@ -24,8 +24,8 @@ final class ElementsIterator<T extends C
private final String namespaceURI;
private final String name;
- public ElementsIterator(CoreParentNode startNode, Axis axis, Class<T>
type, ElementMatcher<? super T> matcher, String namespaceURI, String name,
ExceptionTranslator exceptionTranslator, DetachPolicy detachPolicy) {
- super(startNode, axis, type, exceptionTranslator, detachPolicy);
+ public ElementsIterator(CoreParentNode startNode, Axis axis, Class<T>
type, ElementMatcher<? super T> matcher, String namespaceURI, String name,
ExceptionTranslator exceptionTranslator, Semantics semantics) {
+ super(startNode, axis, type, exceptionTranslator, semantics);
this.type = type;
this.matcher = matcher;
this.namespaceURI = namespaceURI;
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NSAwareAttributeMatcher.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NSAwareAttributeMatcher.java?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NSAwareAttributeMatcher.java
(original)
+++
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NSAwareAttributeMatcher.java
Sun Nov 15 13:59:31 2015
@@ -36,15 +36,15 @@ package org.apache.axiom.core;
* {@link NamespaceDeclarationMatcher} can be used).
*/
public final class NSAwareAttributeMatcher implements AttributeMatcher {
- private final DetachPolicy detachPolicy;
+ private final Semantics semantics;
private final boolean matchNSUnawareAttributes;
private final boolean updatePrefix;
/**
* Constructor.
*
- * @param detachPolicy
- * Specifies the {@link DetachPolicy} to be used by
+ * @param semantics
+ * Specifies the {@link Semantics} to be used by
* {@link #update(CoreAttribute, String, String)}.
* @param matchNSUnawareAttributes
* Specifies if {@link CoreNSUnawareAttribute} instances can
also be matched. Only
@@ -55,9 +55,9 @@ public final class NSAwareAttributeMatch
* <code>prefix</code> is only used when creating new
attributes and prefixes of
* existing attributes are preserved (i.e. only their value is
updated).
*/
- public NSAwareAttributeMatcher(DetachPolicy detachPolicy, boolean
matchNSUnawareAttributes,
+ public NSAwareAttributeMatcher(Semantics semantics, boolean
matchNSUnawareAttributes,
boolean updatePrefix) {
- this.detachPolicy = detachPolicy;
+ this.semantics = semantics;
this.matchNSUnawareAttributes = matchNSUnawareAttributes;
this.updatePrefix = updatePrefix;
}
@@ -92,7 +92,7 @@ public final class NSAwareAttributeMatch
}
public void update(CoreAttribute attr, String prefix, String value) {
- attr.coreSetCharacterData(value, detachPolicy);
+ attr.coreSetCharacterData(value, semantics);
if (updatePrefix && attr instanceof CoreNSAwareAttribute) {
((CoreNSAwareAttribute)attr).coreSetPrefix(prefix);
}
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NamespaceDeclarationMatcher.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NamespaceDeclarationMatcher.java?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NamespaceDeclarationMatcher.java
(original)
+++
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NamespaceDeclarationMatcher.java
Sun Nov 15 13:59:31 2015
@@ -34,10 +34,10 @@ package org.apache.axiom.core;
* </dl>
*/
public final class NamespaceDeclarationMatcher implements AttributeMatcher {
- private final DetachPolicy detachPolicy;
+ private final Semantics semantics;
- public NamespaceDeclarationMatcher(DetachPolicy detachPolicy) {
- this.detachPolicy = detachPolicy;
+ public NamespaceDeclarationMatcher(Semantics semantics) {
+ this.semantics = semantics;
}
public boolean matches(CoreAttribute attr, String namespaceURI, String
name) {
@@ -64,6 +64,6 @@ public final class NamespaceDeclarationM
}
public void update(CoreAttribute attr, String prefix, String value) {
- attr.coreSetCharacterData(value, detachPolicy);
+ attr.coreSetCharacterData(value, semantics);
}
}
\ No newline at end of file
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NodeIterator.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NodeIterator.java?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NodeIterator.java
(original)
+++
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NodeIterator.java
Sun Nov 15 13:59:31 2015
@@ -32,7 +32,7 @@ import java.util.Iterator;
* allowed to throw {@link UnsupportedOperationException}.
* <li>A {@link ConcurrentModificationException} MUST be thrown when the
iterator is used after the
* last node returned by {@link Iterator#next()} has been removed using a
method other than
- * {@link Iterator#remove()} (e.g. {@link
CoreChildNode#coreDetach(DetachPolicy)}).
+ * {@link Iterator#remove()} (e.g. {@link
CoreChildNode#coreDetach(Semantics)}).
* <li>If a {@link CoreModelException} occurs inside {@link
Iterator#hasNext()},
* {@link Iterator#next()} or {@link Iterator#remove()}, then the
implementation MUST use the
* supplied {@link ExceptionTranslator} to translate that checked exception
into an unchecked
Added:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/Semantics.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/Semantics.java?rev=1714454&view=auto
==============================================================================
---
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/Semantics.java
(added)
+++
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/Semantics.java
Sun Nov 15 13:59:31 2015
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axiom.core;
+
+/**
+ * Defines the semantics of a particular API.
+ */
+public interface Semantics {
+ DetachPolicy getDetachPolicy();
+}
Propchange:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/Semantics.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMAttributeSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMAttributeSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMAttributeSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMAttributeSupport.aj
Sun Nov 15 13:59:31 2015
@@ -66,7 +66,7 @@ public aspect DOMAttributeSupport {
}
public final void DOMAttribute.setValue(String value) {
- coreSetCharacterData(value, Policies.DETACH_POLICY);
+ coreSetCharacterData(value, DOMSemantics.INSTANCE);
}
public final CoreElement DOMAttribute.getNamespaceContext() {
Modified:
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMCDATASectionSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMCDATASectionSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMCDATASectionSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMCDATASectionSupport.aj
Sun Nov 15 13:59:31 2015
@@ -30,6 +30,6 @@ public aspect DOMCDATASectionSupport {
}
public final void DOMCDATASection.setData(String data) {
- coreSetCharacterData(data, Policies.DETACH_POLICY);
+ coreSetCharacterData(data, DOMSemantics.INSTANCE);
}
}
Modified:
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMCommentSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMCommentSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMCommentSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMCommentSupport.aj
Sun Nov 15 13:59:31 2015
@@ -34,6 +34,6 @@ public aspect DOMCommentSupport {
}
public final void DOMComment.setData(String data) {
- coreSetCharacterData(data, Policies.DETACH_POLICY);
+ coreSetCharacterData(data, DOMSemantics.INSTANCE);
}
}
Modified:
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentFragmentSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentFragmentSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentFragmentSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentFragmentSupport.aj
Sun Nov 15 13:59:31 2015
@@ -80,6 +80,6 @@ public aspect DOMDocumentFragmentSupport
}
public final void DOMDocumentFragment.setTextContent(String textContent) {
- coreSetCharacterData(textContent, Policies.DETACH_POLICY);
+ coreSetCharacterData(textContent, DOMSemantics.INSTANCE);
}
}
Modified:
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentSupport.aj
Sun Nov 15 13:59:31 2015
@@ -146,7 +146,7 @@ public aspect DOMDocumentSupport {
public final CDATASection DOMDocument.createCDATASection(String data) {
DOMCDATASection cdataSection =
coreGetNodeFactory().createNode(DOMCDATASection.class);
cdataSection.coreSetOwnerDocument(this);
- cdataSection.coreSetCharacterData(data, Policies.DETACH_POLICY);
+ cdataSection.coreSetCharacterData(data, DOMSemantics.INSTANCE);
return cdataSection;
}
@@ -216,7 +216,7 @@ public aspect DOMDocumentSupport {
DOMProcessingInstruction pi =
coreGetNodeFactory().createNode(DOMProcessingInstruction.class);
pi.coreSetOwnerDocument(this);
pi.coreSetTarget(target);
- pi.coreSetCharacterData(data, Policies.DETACH_POLICY);
+ pi.coreSetCharacterData(data, DOMSemantics.INSTANCE);
return pi;
}
@@ -230,7 +230,7 @@ public aspect DOMDocumentSupport {
public final Comment DOMDocument.createComment(String data) {
DOMComment node = coreGetNodeFactory().createNode(DOMComment.class);
node.coreSetOwnerDocument(this);
- node.coreSetCharacterData(data, Policies.DETACH_POLICY);
+ node.coreSetCharacterData(data, DOMSemantics.INSTANCE);
return node;
}
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=1714454&r1=1714453&r2=1714454&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
Sun Nov 15 13:59:31 2015
@@ -76,14 +76,14 @@ public aspect DOMElementSupport {
}
public final Attr DOMElement.getAttributeNode(String name) {
- return (DOMAttribute)coreGetAttribute(Policies.DOM1_ATTRIBUTE_MATCHER,
null, name);
+ return
(DOMAttribute)coreGetAttribute(DOMSemantics.DOM1_ATTRIBUTE_MATCHER, null, name);
}
public final Attr DOMElement.getAttributeNodeNS(String namespaceURI,
String localName) {
if (XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(namespaceURI)) {
- return
(DOMAttribute)coreGetAttribute(Policies.NAMESPACE_DECLARATION_MATCHER, null,
localName.equals(XMLConstants.XMLNS_ATTRIBUTE) ? "" : localName);
+ return
(DOMAttribute)coreGetAttribute(DOMSemantics.NAMESPACE_DECLARATION_MATCHER,
null, localName.equals(XMLConstants.XMLNS_ATTRIBUTE) ? "" : localName);
} else {
- return
(DOMAttribute)coreGetAttribute(Policies.DOM2_ATTRIBUTE_MATCHER, namespaceURI ==
null ? "" : namespaceURI, localName);
+ return
(DOMAttribute)coreGetAttribute(DOMSemantics.DOM2_ATTRIBUTE_MATCHER,
namespaceURI == null ? "" : namespaceURI, localName);
}
}
@@ -107,7 +107,7 @@ public aspect DOMElementSupport {
public final void DOMElement.setAttribute(String name, String value) {
NSUtil.validateName(name);
- coreSetAttribute(Policies.DOM1_ATTRIBUTE_MATCHER, null, name, null,
value);
+ coreSetAttribute(DOMSemantics.DOM1_ATTRIBUTE_MATCHER, null, name,
null, value);
}
public final void DOMElement.setAttributeNS(String namespaceURI, String
qualifiedName, String value) throws DOMException {
@@ -122,11 +122,11 @@ public aspect DOMElementSupport {
localName = qualifiedName.substring(i+1);
}
if (XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(namespaceURI)) {
- coreSetAttribute(Policies.NAMESPACE_DECLARATION_MATCHER, null,
NSUtil.getDeclaredPrefix(localName, prefix), null, value);
+ coreSetAttribute(DOMSemantics.NAMESPACE_DECLARATION_MATCHER, null,
NSUtil.getDeclaredPrefix(localName, prefix), null, value);
} else {
namespaceURI = NSUtil.normalizeNamespaceURI(namespaceURI);
NSUtil.validateAttributeName(namespaceURI, localName, prefix);
- coreSetAttribute(Policies.DOM2_ATTRIBUTE_MATCHER, namespaceURI,
localName, prefix, value);
+ coreSetAttribute(DOMSemantics.DOM2_ATTRIBUTE_MATCHER,
namespaceURI, localName, prefix, value);
}
}
@@ -152,14 +152,14 @@ public aspect DOMElementSupport {
}
AttributeMatcher matcher;
if (newAttr instanceof CoreNSAwareAttribute) {
- matcher = Policies.DOM2_ATTRIBUTE_MATCHER;
+ matcher = DOMSemantics.DOM2_ATTRIBUTE_MATCHER;
} else if (newAttr instanceof CoreNamespaceDeclaration) {
- matcher = Policies.NAMESPACE_DECLARATION_MATCHER;
+ matcher = DOMSemantics.NAMESPACE_DECLARATION_MATCHER;
} else {
// Must be a DOM1 (namespace unaware) attribute
- matcher = Policies.DOM1_ATTRIBUTE_MATCHER;
+ matcher = DOMSemantics.DOM1_ATTRIBUTE_MATCHER;
}
- return (DOMAttribute)coreSetAttribute(matcher, newAttr,
Policies.DETACH_POLICY);
+ return (DOMAttribute)coreSetAttribute(matcher, newAttr,
DOMSemantics.INSTANCE);
}
}
@@ -169,7 +169,7 @@ public aspect DOMElementSupport {
if (attr.coreGetOwnerElement() != this) {
throw
DOMExceptionTranslator.newDOMException(DOMException.NOT_FOUND_ERR);
} else {
- attr.coreRemove(Policies.DETACH_POLICY);
+ attr.coreRemove(DOMSemantics.INSTANCE);
}
return attr;
} else {
@@ -179,15 +179,15 @@ public aspect DOMElementSupport {
public final void DOMElement.removeAttribute(String name) throws
DOMException {
// Specs: "If no attribute with this name is found, this method has no
effect."
- coreRemoveAttribute(Policies.DOM1_ATTRIBUTE_MATCHER, null, name,
Policies.DETACH_POLICY);
+ coreRemoveAttribute(DOMSemantics.DOM1_ATTRIBUTE_MATCHER, null, name,
DOMSemantics.INSTANCE);
}
public final void DOMElement.removeAttributeNS(String namespaceURI, String
localName) throws DOMException {
// Specs: "If no attribute with this local name and namespace URI is
found, this method has no effect."
if (XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(namespaceURI)) {
- coreRemoveAttribute(Policies.NAMESPACE_DECLARATION_MATCHER, null,
localName.equals(XMLConstants.XMLNS_ATTRIBUTE) ? "" : localName,
Policies.DETACH_POLICY);
+ coreRemoveAttribute(DOMSemantics.NAMESPACE_DECLARATION_MATCHER,
null, localName.equals(XMLConstants.XMLNS_ATTRIBUTE) ? "" : localName,
DOMSemantics.INSTANCE);
} else {
- coreRemoveAttribute(Policies.DOM2_ATTRIBUTE_MATCHER, namespaceURI
== null ? "" : namespaceURI, localName, Policies.DETACH_POLICY);
+ coreRemoveAttribute(DOMSemantics.DOM2_ATTRIBUTE_MATCHER,
namespaceURI == null ? "" : namespaceURI, localName, DOMSemantics.INSTANCE);
}
}
@@ -196,7 +196,7 @@ public aspect DOMElementSupport {
}
public final void DOMElement.setTextContent(String textContent) {
- coreSetCharacterData(textContent, Policies.DETACH_POLICY);
+ coreSetCharacterData(textContent, DOMSemantics.INSTANCE);
}
public final NodeList DOMElement.getElementsByTagName(String tagname) {
Modified:
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNodeSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNodeSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNodeSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNodeSupport.aj
Sun Nov 15 13:59:31 2015
@@ -70,7 +70,7 @@ public aspect DOMNodeSupport {
}
public final Node DOMNode.cloneNode(boolean deep) {
- DOMNode clone = (DOMNode)coreClone(deep ? Policies.DEEP_CLONE :
Policies.SHALLOW_CLONE, null);
+ DOMNode clone = (DOMNode)coreClone(deep ? DOMSemantics.DEEP_CLONE :
DOMSemantics.SHALLOW_CLONE, null);
if (!(clone instanceof DOMDocument)) {
clone.coreSetOwnerDocument(coreGetOwnerDocument(true));
}
Modified:
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMParentNodeSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMParentNodeSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMParentNodeSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMParentNodeSupport.aj
Sun Nov 15 13:59:31 2015
@@ -68,7 +68,7 @@ public aspect DOMParentNodeSupport {
public final Node DOMParentNode.removeChild(Node oldChild) throws
DOMException {
if (oldChild.getParentNode() == this) {
- ((CoreChildNode)oldChild).coreDetach(Policies.DETACH_POLICY);
+ ((CoreChildNode)oldChild).coreDetach(DOMSemantics.INSTANCE);
return oldChild;
} else {
throw newDOMException(DOMException.NOT_FOUND_ERR);
Modified:
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMProcessingInstructionSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMProcessingInstructionSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMProcessingInstructionSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMProcessingInstructionSupport.aj
Sun Nov 15 13:59:31 2015
@@ -30,7 +30,7 @@ public aspect DOMProcessingInstructionSu
}
public final void DOMProcessingInstruction.setData(String data) {
- coreSetCharacterData(data, Policies.DETACH_POLICY);
+ coreSetCharacterData(data, DOMSemantics.INSTANCE);
}
public final String DOMProcessingInstruction.getNodeName() {
Copied:
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMSemantics.java
(from r1714139,
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/Policies.java)
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMSemantics.java?p2=webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMSemantics.java&p1=webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/Policies.java&r1=1714139&r2=1714454&rev=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/Policies.java
(original)
+++
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMSemantics.java
Sun Nov 15 13:59:31 2015
@@ -28,11 +28,16 @@ import org.apache.axiom.core.DetachPolic
import org.apache.axiom.core.NSAwareAttributeMatcher;
import org.apache.axiom.core.NamespaceDeclarationMatcher;
import org.apache.axiom.core.NodeType;
+import org.apache.axiom.core.Semantics;
-public final class Policies {
- private Policies() {}
+public final class DOMSemantics implements Semantics {
+ public static final DOMSemantics INSTANCE = new DOMSemantics();
- public static final DetachPolicy DETACH_POLICY =
DetachPolicy.SAME_DOCUMENT;
+ private DOMSemantics() {}
+
+ public DetachPolicy getDetachPolicy() {
+ return DetachPolicy.SAME_DOCUMENT;
+ }
/**
* {@link AttributeMatcher} implementation that matches attributes based
on their name, i.e.
@@ -74,13 +79,13 @@ public final class Policies {
}
public void update(CoreAttribute attr, String prefix, String value) {
- attr.coreSetCharacterData(value, DETACH_POLICY);
+ attr.coreSetCharacterData(value, INSTANCE);
}
};
- public static final AttributeMatcher DOM2_ATTRIBUTE_MATCHER = new
NSAwareAttributeMatcher(DETACH_POLICY, true, true);
+ public static final AttributeMatcher DOM2_ATTRIBUTE_MATCHER = new
NSAwareAttributeMatcher(INSTANCE, true, true);
- public static final AttributeMatcher NAMESPACE_DECLARATION_MATCHER = new
NamespaceDeclarationMatcher(DETACH_POLICY);
+ public static final AttributeMatcher NAMESPACE_DECLARATION_MATCHER = new
NamespaceDeclarationMatcher(INSTANCE);
public static final ClonePolicy<Void> DEEP_CLONE = new ClonePolicy<Void>()
{
public Class<? extends CoreNode> getTargetNodeClass(Void options,
CoreNode node) {
Modified:
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMTextNodeSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMTextNodeSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMTextNodeSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMTextNodeSupport.aj
Sun Nov 15 13:59:31 2015
@@ -87,7 +87,7 @@ public aspect DOMTextNodeSupport {
DOMTextNode next;
do {
next = current == last ? null :
(DOMTextNode)current.coreGetNextSibling();
- current.coreDetach(Policies.DETACH_POLICY);
+ current.coreDetach(DOMSemantics.INSTANCE);
current = next;
} while (next != null);
}
Modified:
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/ElementsByTagName.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/ElementsByTagName.java?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/ElementsByTagName.java
(original)
+++
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/ElementsByTagName.java
Sun Nov 15 13:59:31 2015
@@ -36,9 +36,9 @@ public class ElementsByTagName extends N
@Override
protected Iterator<? extends Node> createIterator() {
if (tagname.equals("*")) {
- return node.coreGetElements(Axis.DESCENDANTS, DOMElement.class,
ElementMatcher.ANY, null, null, DOMExceptionTranslator.INSTANCE,
Policies.DETACH_POLICY);
+ return node.coreGetElements(Axis.DESCENDANTS, DOMElement.class,
ElementMatcher.ANY, null, null, DOMExceptionTranslator.INSTANCE,
DOMSemantics.INSTANCE);
} else {
- return node.coreGetElements(Axis.DESCENDANTS, DOMElement.class,
ElementMatcher.BY_NAME, null, tagname, DOMExceptionTranslator.INSTANCE,
Policies.DETACH_POLICY);
+ return node.coreGetElements(Axis.DESCENDANTS, DOMElement.class,
ElementMatcher.BY_NAME, null, tagname, DOMExceptionTranslator.INSTANCE,
DOMSemantics.INSTANCE);
}
}
}
Modified:
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/ElementsByTagNameNS.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/ElementsByTagNameNS.java?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/ElementsByTagNameNS.java
(original)
+++
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/ElementsByTagNameNS.java
Sun Nov 15 13:59:31 2015
@@ -41,13 +41,13 @@ public class ElementsByTagNameNS extends
boolean localNameWildcard = localName.equals("*");
if (nsWildcard && localNameWildcard) {
// TODO: there seems to be no unit test checking whether the
iterator should return DOM1 elements!
- return node.coreGetElements(Axis.DESCENDANTS, DOMElement.class,
ElementMatcher.ANY, null, null, DOMExceptionTranslator.INSTANCE,
Policies.DETACH_POLICY);
+ return node.coreGetElements(Axis.DESCENDANTS, DOMElement.class,
ElementMatcher.ANY, null, null, DOMExceptionTranslator.INSTANCE,
DOMSemantics.INSTANCE);
} else if (nsWildcard) {
- return node.coreGetElements(Axis.DESCENDANTS,
DOMNSAwareElement.class, ElementMatcher.BY_LOCAL_NAME, null, localName,
DOMExceptionTranslator.INSTANCE, Policies.DETACH_POLICY);
+ return node.coreGetElements(Axis.DESCENDANTS,
DOMNSAwareElement.class, ElementMatcher.BY_LOCAL_NAME, null, localName,
DOMExceptionTranslator.INSTANCE, DOMSemantics.INSTANCE);
} else if (localNameWildcard) {
- return node.coreGetElements(Axis.DESCENDANTS,
DOMNSAwareElement.class, ElementMatcher.BY_NAMESPACE_URI, namespaceURI, null,
DOMExceptionTranslator.INSTANCE, Policies.DETACH_POLICY);
+ return node.coreGetElements(Axis.DESCENDANTS,
DOMNSAwareElement.class, ElementMatcher.BY_NAMESPACE_URI, namespaceURI, null,
DOMExceptionTranslator.INSTANCE, DOMSemantics.INSTANCE);
} else {
- return node.coreGetElements(Axis.DESCENDANTS,
DOMNSAwareElement.class, ElementMatcher.BY_QNAME, namespaceURI, localName,
DOMExceptionTranslator.INSTANCE, Policies.DETACH_POLICY);
+ return node.coreGetElements(Axis.DESCENDANTS,
DOMNSAwareElement.class, ElementMatcher.BY_QNAME, namespaceURI, localName,
DOMExceptionTranslator.INSTANCE, DOMSemantics.INSTANCE);
}
}
}
Modified:
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaAttributeMixin.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaAttributeMixin.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaAttributeMixin.aj
(original)
+++
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaAttributeMixin.aj
Sun Nov 15 13:59:31 2015
@@ -25,7 +25,7 @@ public aspect AbderaAttributeMixin {
}
public final Attribute AbderaAttribute.setText(String text) {
- coreSetCharacterData(text, Policies.DETACH_POLICY);
+ coreSetCharacterData(text, FOMSemantics.INSTANCE);
return this;
}
}
Modified:
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaElementMixin.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaElementMixin.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaElementMixin.aj
(original)
+++
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaElementMixin.aj
Sun Nov 15 13:59:31 2015
@@ -20,6 +20,6 @@ package org.apache.axiom.fom;
public aspect AbderaElementMixin {
public final void AbderaElement._removeAllChildren() {
- coreRemoveChildren(Policies.DETACH_POLICY);
+ coreRemoveChildren(FOMSemantics.INSTANCE);
}
}
Modified:
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaProcessingInstructionMixin.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaProcessingInstructionMixin.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaProcessingInstructionMixin.aj
(original)
+++
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaProcessingInstructionMixin.aj
Sun Nov 15 13:59:31 2015
@@ -27,7 +27,7 @@ public aspect AbderaProcessingInstructio
@SuppressWarnings("unchecked")
public final <T extends ProcessingInstruction> T
AbderaProcessingInstruction.setText(String text) {
- coreSetCharacterData(text, Policies.DETACH_POLICY);
+ coreSetCharacterData(text, FOMSemantics.INSTANCE);
return (T)this;
}
}
Modified:
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/CategoryContainerMixin.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/CategoryContainerMixin.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/CategoryContainerMixin.aj
(original)
+++
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/CategoryContainerMixin.aj
Sun Nov 15 13:59:31 2015
@@ -55,6 +55,6 @@ public aspect CategoryContainerMixin {
// TODO: we should probably set detachPolicy to null
return new FOMList<Category>(coreGetElements(
Axis.CHILDREN, AbderaCategory.class, CATEGORY_BY_SCHEME, null,
scheme,
- FOMExceptionTranslator.INSTANCE, Policies.DETACH_POLICY));
+ FOMExceptionTranslator.INSTANCE, FOMSemantics.INSTANCE));
}
}
Copied:
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/FOMSemantics.java
(from r1711547,
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/Policies.java)
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/FOMSemantics.java?p2=webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/FOMSemantics.java&p1=webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/Policies.java&r1=1711547&r2=1714454&rev=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/Policies.java
(original)
+++
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/FOMSemantics.java
Sun Nov 15 13:59:31 2015
@@ -19,19 +19,18 @@
package org.apache.axiom.fom;
import org.apache.axiom.core.AttributeMatcher;
-import org.apache.axiom.core.CoreDocument;
-import org.apache.axiom.core.CoreParentNode;
import org.apache.axiom.core.DetachPolicy;
import org.apache.axiom.core.NSAwareAttributeMatcher;
+import org.apache.axiom.core.Semantics;
-public final class Policies {
- private Policies() {}
+public final class FOMSemantics implements Semantics {
+ public static final FOMSemantics INSTANCE = new FOMSemantics();
- public static final DetachPolicy DETACH_POLICY = new DetachPolicy() {
- public CoreDocument getNewOwnerDocument(CoreParentNode owner) {
- return null;
- }
- };
+ private FOMSemantics() {}
- public static final AttributeMatcher ATTRIBUTE_MATCHER = new
NSAwareAttributeMatcher(DETACH_POLICY, false, false);
+ public DetachPolicy getDetachPolicy() {
+ return DetachPolicy.NEW_DOCUMENT;
+ }
+
+ public static final AttributeMatcher ATTRIBUTE_MATCHER = new
NSAwareAttributeMatcher(INSTANCE, false, false);
}
Modified:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomAttributeSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomAttributeSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomAttributeSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomAttributeSupport.aj
Sun Nov 15 13:59:31 2015
@@ -44,7 +44,7 @@ public aspect AxiomAttributeSupport {
}
public final void AxiomAttribute.setAttributeValue(String value) {
- coreSetCharacterData(value, Policies.DETACH_POLICY);
+ coreSetCharacterData(value, AxiomSemantics.INSTANCE);
}
public final String AxiomAttribute.getAttributeType() {
Modified:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomChildNodeSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomChildNodeSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomChildNodeSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomChildNodeSupport.aj
Sun Nov 15 13:59:31 2015
@@ -60,7 +60,7 @@ public aspect AxiomChildNodeSupport {
throw new OMException(
"Nodes that don't have a parent can not be detached");
}
- coreDetach(Policies.DETACH_POLICY);
+ coreDetach(AxiomSemantics.INSTANCE);
return this;
}
}
Modified:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomCommentSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomCommentSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomCommentSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomCommentSupport.aj
Sun Nov 15 13:59:31 2015
@@ -34,7 +34,7 @@ public aspect AxiomCommentSupport {
}
public void AxiomComment.setValue(String text) {
- coreSetCharacterData(text, Policies.DETACH_POLICY);
+ coreSetCharacterData(text, AxiomSemantics.INSTANCE);
}
public final void AxiomComment.internalSerialize(Serializer serializer,
OMOutputFormat format, boolean cache) throws OutputException {
Modified:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomContainerSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomContainerSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomContainerSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomContainerSupport.aj
Sun Nov 15 13:59:31 2015
@@ -187,11 +187,11 @@ public aspect AxiomContainerSupport {
}
public void AxiomContainer.removeChildren() {
- coreRemoveChildren(Policies.DETACH_POLICY);
+ coreRemoveChildren(AxiomSemantics.INSTANCE);
}
public Iterator AxiomContainer.getChildren() {
- return coreGetNodes(Axis.CHILDREN, OMNode.class,
AxiomExceptionTranslator.INSTANCE, Policies.DETACH_POLICY);
+ return coreGetNodes(Axis.CHILDREN, OMNode.class,
AxiomExceptionTranslator.INSTANCE, AxiomSemantics.INSTANCE);
}
public Iterator AxiomContainer.getChildrenWithLocalName(String localName) {
@@ -229,7 +229,7 @@ public aspect AxiomContainerSupport {
}
public Iterator AxiomContainer.getDescendants(boolean includeSelf) {
- return coreGetNodes(includeSelf ? Axis.DESCENDANTS_OR_SELF :
Axis.DESCENDANTS, OMSerializable.class, AxiomExceptionTranslator.INSTANCE,
Policies.DETACH_POLICY);
+ return coreGetNodes(includeSelf ? Axis.DESCENDANTS_OR_SELF :
Axis.DESCENDANTS, OMSerializable.class, AxiomExceptionTranslator.INSTANCE,
AxiomSemantics.INSTANCE);
}
public OMElement AxiomContainer.getFirstChildWithName(QName elementQName)
throws OMException {
Modified:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomDocumentSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomDocumentSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomDocumentSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomDocumentSupport.aj
Sun Nov 15 13:59:31 2015
@@ -40,7 +40,7 @@ public aspect AxiomDocumentSupport {
if (existingDocumentElement == null) {
addChild(documentElement);
} else {
-
existingDocumentElement.coreReplaceWith((AxiomElement)documentElement,
Policies.DETACH_POLICY);
+
existingDocumentElement.coreReplaceWith((AxiomElement)documentElement,
AxiomSemantics.INSTANCE);
}
}
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=1714454&r1=1714453&r2=1714454&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
Sun Nov 15 13:59:31 2015
@@ -196,7 +196,7 @@ public aspect AxiomElementSupport {
// Not final because overridden in Abdera
public void AxiomElement.setText(String text) {
- coreSetCharacterData(text, Policies.DETACH_POLICY);
+ coreSetCharacterData(text, AxiomSemantics.INSTANCE);
}
public final void AxiomElement.setText(QName qname) {
@@ -278,7 +278,7 @@ public aspect AxiomElementSupport {
}
public final void AxiomElement.internalAppendAttribute(OMAttribute attr) {
- coreSetAttribute(Policies.ATTRIBUTE_MATCHER, (AxiomAttribute)attr,
Policies.DETACH_POLICY);
+ coreSetAttribute(AxiomSemantics.ATTRIBUTE_MATCHER,
(AxiomAttribute)attr, AxiomSemantics.INSTANCE);
}
public final OMAttribute AxiomElement.addAttribute(OMAttribute attr){
@@ -315,11 +315,11 @@ public aspect AxiomElementSupport {
@SuppressWarnings("rawtypes")
public final Iterator AxiomElement.getAllAttributes() {
- return coreGetAttributesByType(AxiomAttribute.class,
attributeIdentityMapper, Policies.DETACH_POLICY);
+ return coreGetAttributesByType(AxiomAttribute.class,
attributeIdentityMapper, AxiomSemantics.INSTANCE);
}
public final OMAttribute AxiomElement.getAttribute(QName qname) {
- return (AxiomAttribute)coreGetAttribute(Policies.ATTRIBUTE_MATCHER,
qname.getNamespaceURI(), qname.getLocalPart());
+ return
(AxiomAttribute)coreGetAttribute(AxiomSemantics.ATTRIBUTE_MATCHER,
qname.getNamespaceURI(), qname.getLocalPart());
}
// TODO: overridden in fom-impl
@@ -342,7 +342,7 @@ public aspect AxiomElementSupport {
if (attr.getOwner() != this) {
throw new OMException("The attribute is not owned by this
element");
}
- ((AxiomAttribute)attr).coreRemove(Policies.DETACH_POLICY);
+ ((AxiomAttribute)attr).coreRemove(AxiomSemantics.INSTANCE);
}
public final OMNamespace AxiomElement.addNamespaceDeclaration(String uri,
String prefix) {
@@ -356,12 +356,12 @@ 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,
Policies.DETACH_POLICY);
+ coreSetAttribute(AxiomSemantics.NAMESPACE_DECLARATION_MATCHER, decl,
AxiomSemantics.INSTANCE);
}
@SuppressWarnings("rawtypes")
public final Iterator AxiomElement.getAllDeclaredNamespaces() {
- return coreGetAttributesByType(AxiomNamespaceDeclaration.class,
NamespaceDeclarationMapper.INSTANCE, Policies.DETACH_POLICY);
+ return coreGetAttributesByType(AxiomNamespaceDeclaration.class,
NamespaceDeclarationMapper.INSTANCE, AxiomSemantics.INSTANCE);
}
public final OMNamespace AxiomElement.declareNamespace(OMNamespace
namespace) {
Modified:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomInformationItemSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomInformationItemSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomInformationItemSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomInformationItemSupport.aj
Sun Nov 15 13:59:31 2015
@@ -29,6 +29,6 @@ public aspect AxiomInformationItemSuppor
}
public final OMInformationItem AxiomInformationItem.clone(OMCloneOptions
options) {
- return (OMInformationItem)coreClone(Policies.CLONE_POLICY, options);
+ return (OMInformationItem)coreClone(AxiomSemantics.CLONE_POLICY,
options);
}
}
Modified:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomNamespaceDeclarationSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomNamespaceDeclarationSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomNamespaceDeclarationSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomNamespaceDeclarationSupport.aj
Sun Nov 15 13:59:31 2015
@@ -42,6 +42,6 @@ public aspect AxiomNamespaceDeclarationS
public final void
AxiomNamespaceDeclaration.setDeclaredNamespace(OMNamespace declaredNamespace) {
this.declaredNamespace = declaredNamespace;
- coreSetCharacterData(declaredNamespace.getNamespaceURI(),
Policies.DETACH_POLICY);
+ coreSetCharacterData(declaredNamespace.getNamespaceURI(),
AxiomSemantics.INSTANCE);
}
}
Modified:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomProcessingInstructionSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomProcessingInstructionSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomProcessingInstructionSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomProcessingInstructionSupport.aj
Sun Nov 15 13:59:31 2015
@@ -37,7 +37,7 @@ public aspect AxiomProcessingInstruction
}
public final void AxiomProcessingInstruction.setValue(String value) {
- coreSetCharacterData(value, Policies.DETACH_POLICY);
+ coreSetCharacterData(value, AxiomSemantics.INSTANCE);
}
public final void AxiomProcessingInstruction.internalSerialize(Serializer
serializer, OMOutputFormat format, boolean cache) throws OutputException {
Copied:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomSemantics.java
(from r1714139,
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/Policies.java)
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomSemantics.java?p2=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomSemantics.java&p1=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/Policies.java&r1=1714139&r2=1714454&rev=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/Policies.java
(original)
+++
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomSemantics.java
Sun Nov 15 13:59:31 2015
@@ -26,22 +26,27 @@ import org.apache.axiom.core.DetachPolic
import org.apache.axiom.core.NSAwareAttributeMatcher;
import org.apache.axiom.core.NamespaceDeclarationMatcher;
import org.apache.axiom.core.NodeType;
+import org.apache.axiom.core.Semantics;
import org.apache.axiom.om.OMCloneOptions;
import org.apache.axiom.om.impl.intf.AxiomAttribute;
import org.apache.axiom.om.impl.intf.AxiomElement;
import org.apache.axiom.om.impl.intf.AxiomSourcedElement;
-public final class Policies {
- private Policies() {}
+public final class AxiomSemantics implements Semantics {
+ public static final AxiomSemantics INSTANCE = new AxiomSemantics();
- public static final DetachPolicy DETACH_POLICY = DetachPolicy.NEW_DOCUMENT;
+ private AxiomSemantics() {}
+
+ public DetachPolicy getDetachPolicy() {
+ return DetachPolicy.NEW_DOCUMENT;
+ }
public static final AttributeMatcher ATTRIBUTE_MATCHER = new
NSAwareAttributeMatcher(
- DETACH_POLICY,
+ INSTANCE,
false, // Axiom doesn't support namespace unaware attributes
false);
- public static final AttributeMatcher NAMESPACE_DECLARATION_MATCHER = new
NamespaceDeclarationMatcher(DETACH_POLICY);
+ public static final AttributeMatcher NAMESPACE_DECLARATION_MATCHER = new
NamespaceDeclarationMatcher(INSTANCE);
public static final ClonePolicy<OMCloneOptions> CLONE_POLICY = new
ClonePolicy<OMCloneOptions>() {
public Class<? extends CoreNode> getTargetNodeClass(OMCloneOptions
options, CoreNode node) {
Modified:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomTextSupport.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomTextSupport.aj?rev=1714454&r1=1714453&r2=1714454&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomTextSupport.aj
(original)
+++
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomTextSupport.aj
Sun Nov 15 13:59:31 2015
@@ -38,7 +38,7 @@ public aspect AxiomTextSupport {
return (TextContent)content;
} else if (force) {
TextContent textContent = new TextContent((String)content);
- coreSetCharacterData(textContent, Policies.DETACH_POLICY);
+ coreSetCharacterData(textContent, AxiomSemantics.INSTANCE);
return textContent;
} else {
return null;