You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2016/03/11 23:59:45 UTC
svn commit: r1734640 - in /webservices/axiom/trunk:
aspects/core-aspects/src/main/java/org/apache/axiom/core/
aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/
aspects/dom-aspects/src/main/java/org/apache/axiom/dom/ aspects/dom-aspec...
Author: veithen
Date: Fri Mar 11 22:59:45 2016
New Revision: 1734640
URL: http://svn.apache.org/viewvc?rev=1734640&view=rev
Log:
Cleanly reimplement Axiom's build/isComplete methods.
Modified:
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/CoreCharacterDataSinkNode.java
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/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/impl/mixin/CoreElementSupport.aj
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMSemantics.java
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMAttributeSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMCDATASectionSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMCommentSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentFragmentSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMElementSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMParentNodeSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMProcessingInstructionSupport.aj
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/impl/mixin/AbderaAttributeMixin.aj
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/impl/mixin/AbderaProcessingInstructionMixin.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuildableContext.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomAttributeSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCDATASectionSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCommentSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCoreParentNodeSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocumentSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomNamespaceDeclarationSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomProcessingInstructionSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj
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/FOMContent.java
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMDiv.java
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMElement.java
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMText.java
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=1734640&r1=1734639&r2=1734640&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 Fri Mar 11 22:59:45 2016
@@ -81,8 +81,9 @@ public interface AttributeMatcher {
* @param value
* see above
* @return
+ * @throws CoreModelException
*/
- CoreAttribute createAttribute(CoreElement element, String namespaceURI, String name, String prefix, String value);
+ CoreAttribute createAttribute(CoreElement element, 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>
@@ -95,6 +96,7 @@ public interface AttributeMatcher {
* see above
* @param value
* see above
+ * @throws CoreModelException
*/
- void update(CoreAttribute attr, String prefix, String value);
+ void update(CoreAttribute attr, String prefix, String value) throws CoreModelException;
}
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=1734640&r1=1734639&r2=1734640&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 Fri Mar 11 22:59:45 2016
@@ -19,5 +19,5 @@
package org.apache.axiom.core;
public interface CoreCharacterDataSinkNode {
- void coreSetCharacterData(Object data, Semantics semantics);
+ void coreSetCharacterData(Object data, Semantics semantics) throws CoreModelException;
}
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=1734640&r1=1734639&r2=1734640&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 Fri Mar 11 22:59:45 2016
@@ -44,7 +44,7 @@ public interface CoreParentNode extends
void coreSetInputContext(InputContext context);
int getState();
void coreSetState(int state);
- void build();
+ void coreBuild() throws CoreModelException;
<T> NodeIterator<T> coreGetNodes(Axis axis, Mapper<? super CoreNode,T> mapper, Semantics semantics);
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=1734640&r1=1734639&r2=1734640&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 Fri Mar 11 22:59:45 2016
@@ -84,14 +84,14 @@ public final class NSAwareAttributeMatch
return ((CoreNSAwareAttribute)attr).coreGetLocalName();
}
- public CoreAttribute createAttribute(CoreElement element, String namespaceURI, String name, String prefix, String value) {
+ public CoreAttribute createAttribute(CoreElement element, String namespaceURI, String name, String prefix, String value) throws CoreModelException {
CoreNSAwareAttribute attr = element.coreCreateNode(CoreNSAwareAttribute.class);
attr.coreSetName(namespaceURI, name, prefix);
attr.coreSetCharacterData(value, null);
return attr;
}
- public void update(CoreAttribute attr, String prefix, String value) {
+ public void update(CoreAttribute attr, String prefix, String value) throws CoreModelException {
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=1734640&r1=1734639&r2=1734640&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 Fri Mar 11 22:59:45 2016
@@ -63,7 +63,7 @@ public final class NamespaceDeclarationM
return ((CoreNamespaceDeclaration)attr).coreGetDeclaredPrefix();
}
- public void update(CoreAttribute attr, String prefix, String value) {
+ public void update(CoreAttribute attr, String prefix, String value) throws CoreModelException {
attr.coreSetCharacterData(value, semantics);
}
}
\ No newline at end of file
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreElementSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreElementSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreElementSupport.aj (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreElementSupport.aj Fri Mar 11 22:59:45 2016
@@ -72,7 +72,7 @@ public aspect CoreElementSupport {
}
}
- public final void CoreElement.coreSetAttribute(AttributeMatcher matcher, String namespaceURI, String name, String prefix, String value) {
+ public final void CoreElement.coreSetAttribute(AttributeMatcher matcher, String namespaceURI, String name, String prefix, String value) throws CoreModelException {
CoreAttribute attr = firstAttribute;
CoreAttribute previousAttr = null;
while (attr != null && !matcher.matches(attr, namespaceURI, name)) {
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj Fri Mar 11 22:59:45 2016
@@ -54,15 +54,20 @@ public aspect CoreParentNodeSupport {
private InputContext CoreParentNode.context;
private Object CoreParentNode.content;
- // TODO: rename & make final
- public int CoreParentNode.getState() {
+ // TODO: rename
+ public final int CoreParentNode.getState() {
return flags & Flags.STATE_MASK;
}
public final void CoreParentNode.coreSetState(int state) {
flags = (flags & ~Flags.STATE_MASK) | state;
+ if (state == COMPLETE) {
+ completed();
+ }
}
+ public void CoreParentNode.completed() {}
+
public boolean CoreParentNode.isExpanded() {
return true;
}
@@ -163,12 +168,12 @@ public aspect CoreParentNodeSupport {
return child;
}
- public final CoreChildNode CoreParentNode.coreGetLastChild() {
- build();
+ public final CoreChildNode CoreParentNode.coreGetLastChild() throws CoreModelException {
+ coreBuild();
return coreGetLastKnownChild();
}
- public final CoreChildNode CoreParentNode.coreGetLastChild(NodeFilter filter) {
+ public final CoreChildNode CoreParentNode.coreGetLastChild(NodeFilter filter) throws CoreModelException {
CoreChildNode child = coreGetLastChild();
while (child != null && !filter.accept(child)) {
child = child.coreGetPreviousSibling();
@@ -176,9 +181,9 @@ public aspect CoreParentNodeSupport {
return child;
}
- public final void CoreParentNode.coreAppendChild(CoreChildNode child) {
- // TODO: this is wrong; we only need to build the node locally, but build() builds incomplete children as well
- build();
+ public final void CoreParentNode.coreAppendChild(CoreChildNode child) throws CoreModelException {
+ forceExpand();
+ coreBuild();
internalAppendChildWithoutBuild(child);
}
@@ -200,14 +205,14 @@ public aspect CoreParentNodeSupport {
content.lastChild = child;
}
- public final void CoreParentNode.coreAppendChildren(CoreDocumentFragment fragment) {
- fragment.build();
+ public final void CoreParentNode.coreAppendChildren(CoreDocumentFragment fragment) throws CoreModelException {
+ fragment.coreBuild();
Content fragmentContent = fragment.getContent(false);
if (fragmentContent == null || fragmentContent.firstChild == null) {
// Fragment is empty; nothing to do
return;
}
- build();
+ coreBuild();
CoreChildNode child = fragmentContent.firstChild;
while (child != null) {
child.internalSetParent(this);
@@ -236,7 +241,6 @@ public aspect CoreParentNodeSupport {
}
child = child.coreGetNextSiblingIfAvailable();
}
- InputContext context = coreGetInputContext();
if (context != null) {
context.discard();
if (consumeInput) {
@@ -248,7 +252,7 @@ public aspect CoreParentNodeSupport {
}
}
- public final void CoreParentNode.coreRemoveChildren(Semantics semantics) {
+ public final void CoreParentNode.coreRemoveChildren(Semantics semantics) throws CoreModelException {
if (getState() == COMPACT) {
coreSetState(COMPLETE);
content = null;
@@ -256,12 +260,12 @@ public aspect CoreParentNodeSupport {
// We need to call this first because if may modify the state (applies to OMSourcedElements)
CoreChildNode child = coreGetFirstChildIfAvailable();
boolean updateState;
- if (getState() == INCOMPLETE && coreGetBuilder() != null) {
+ if (getState() == INCOMPLETE) {
CoreChildNode lastChild = coreGetLastKnownChild();
if (lastChild instanceof CoreParentNode) {
- ((CoreParentNode)lastChild).build();
+ ((CoreParentNode)lastChild).coreBuild();
}
- coreGetInputContext().discard();
+ context.discard();
updateState = true;
} else {
updateState = false;
@@ -350,7 +354,7 @@ public aspect CoreParentNodeSupport {
}
}
- public final void CoreParentNode.coreSetCharacterData(Object data, Semantics semantics) {
+ public final void CoreParentNode.coreSetCharacterData(Object data, Semantics semantics) throws CoreModelException {
coreRemoveChildren(semantics);
if (data != null && (data instanceof CharacterData || ((String)data).length() > 0)) {
coreSetState(COMPACT);
@@ -407,4 +411,19 @@ public aspect CoreParentNodeSupport {
throw ex.getCoreModelException();
}
}
+
+ public final void CoreParentNode.coreBuild() throws CoreModelException {
+ switch (getState()) {
+ case DISCARDING:
+ case DISCARDED:
+ throw new NodeConsumedException();
+ case INCOMPLETE:
+ if (context != null) {
+ Builder builder = context.getBuilder();
+ do {
+ builder.next();
+ } while (context != null);
+ }
+ }
+ }
}
Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMSemantics.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMSemantics.java?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMSemantics.java (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMSemantics.java Fri Mar 11 22:59:45 2016
@@ -88,7 +88,7 @@ public final class DOMSemantics implemen
return ((DOMAttribute)attr).getName();
}
- public CoreAttribute createAttribute(CoreElement element, String namespaceURI, String name, String prefix, String value) {
+ public CoreAttribute createAttribute(CoreElement element, String namespaceURI, String name, String prefix, String value) throws CoreModelException {
CoreNSUnawareAttribute attr = element.coreCreateNode(CoreNSUnawareAttribute.class);
attr.coreSetName(name);
attr.coreSetCharacterData(value, null);
@@ -96,7 +96,7 @@ public final class DOMSemantics implemen
return attr;
}
- public void update(CoreAttribute attr, String prefix, String value) {
+ public void update(CoreAttribute attr, String prefix, String value) throws CoreModelException {
attr.coreSetCharacterData(value, INSTANCE);
}
};
Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMAttributeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMAttributeSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMAttributeSupport.aj (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMAttributeSupport.aj Fri Mar 11 22:59:45 2016
@@ -74,7 +74,11 @@ public aspect DOMAttributeSupport {
}
public final void DOMAttribute.setValue(String value) {
- coreSetCharacterData(value, DOMSemantics.INSTANCE);
+ try {
+ coreSetCharacterData(value, DOMSemantics.INSTANCE);
+ } catch (CoreModelException ex) {
+ throw DOMExceptionUtil.toUncheckedException(ex);
+ }
}
public final CoreElement DOMAttribute.getNamespaceContext() {
Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMCDATASectionSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMCDATASectionSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMCDATASectionSupport.aj (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMCDATASectionSupport.aj Fri Mar 11 22:59:45 2016
@@ -18,7 +18,9 @@
*/
package org.apache.axiom.dom.impl.mixin;
+import org.apache.axiom.core.CoreModelException;
import org.apache.axiom.dom.DOMCDATASection;
+import org.apache.axiom.dom.DOMExceptionUtil;
import org.apache.axiom.dom.DOMSemantics;
import org.w3c.dom.Node;
@@ -32,6 +34,10 @@ public aspect DOMCDATASectionSupport {
}
public final void DOMCDATASection.setData(String data) {
- coreSetCharacterData(data, DOMSemantics.INSTANCE);
+ try {
+ coreSetCharacterData(data, DOMSemantics.INSTANCE);
+ } catch (CoreModelException ex) {
+ throw DOMExceptionUtil.toUncheckedException(ex);
+ }
}
}
Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMCommentSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMCommentSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMCommentSupport.aj (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMCommentSupport.aj Fri Mar 11 22:59:45 2016
@@ -42,6 +42,10 @@ public aspect DOMCommentSupport {
}
public final void DOMComment.setData(String data) {
- coreSetCharacterData(data, DOMSemantics.INSTANCE);
+ try {
+ coreSetCharacterData(data, DOMSemantics.INSTANCE);
+ } catch (CoreModelException ex) {
+ throw DOMExceptionUtil.toUncheckedException(ex);
+ }
}
}
Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentFragmentSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentFragmentSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentFragmentSupport.aj (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentFragmentSupport.aj Fri Mar 11 22:59:45 2016
@@ -88,6 +88,10 @@ public aspect DOMDocumentFragmentSupport
}
public final void DOMDocumentFragment.setTextContent(String textContent) {
- coreSetCharacterData(textContent, DOMSemantics.INSTANCE);
+ try {
+ coreSetCharacterData(textContent, DOMSemantics.INSTANCE);
+ } catch (CoreModelException ex) {
+ throw DOMExceptionUtil.toUncheckedException(ex);
+ }
}
}
Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj Fri Mar 11 22:59:45 2016
@@ -174,10 +174,14 @@ public aspect DOMDocumentSupport {
}
public final CDATASection DOMDocument.createCDATASection(String data) {
- DOMCDATASection cdataSection = coreGetNodeFactory().createNode(DOMCDATASection.class);
- cdataSection.coreSetOwnerDocument(this);
- cdataSection.coreSetCharacterData(data, DOMSemantics.INSTANCE);
- return cdataSection;
+ try {
+ DOMCDATASection cdataSection = coreGetNodeFactory().createNode(DOMCDATASection.class);
+ cdataSection.coreSetOwnerDocument(this);
+ cdataSection.coreSetCharacterData(data, DOMSemantics.INSTANCE);
+ return cdataSection;
+ } catch (CoreModelException ex) {
+ throw DOMExceptionUtil.toUncheckedException(ex);
+ }
}
public final Element DOMDocument.createElement(String tagName) {
@@ -243,11 +247,15 @@ public aspect DOMDocumentSupport {
}
public final ProcessingInstruction DOMDocument.createProcessingInstruction(String target, String data) {
- DOMProcessingInstruction pi = coreGetNodeFactory().createNode(DOMProcessingInstruction.class);
- pi.coreSetOwnerDocument(this);
- pi.coreSetTarget(target);
- pi.coreSetCharacterData(data, DOMSemantics.INSTANCE);
- return pi;
+ try {
+ DOMProcessingInstruction pi = coreGetNodeFactory().createNode(DOMProcessingInstruction.class);
+ pi.coreSetOwnerDocument(this);
+ pi.coreSetTarget(target);
+ pi.coreSetCharacterData(data, DOMSemantics.INSTANCE);
+ return pi;
+ } catch (CoreModelException ex) {
+ throw DOMExceptionUtil.toUncheckedException(ex);
+ }
}
public final EntityReference DOMDocument.createEntityReference(String name) throws DOMException {
@@ -258,10 +266,14 @@ public aspect DOMDocumentSupport {
}
public final Comment DOMDocument.createComment(String data) {
- DOMComment node = coreGetNodeFactory().createNode(DOMComment.class);
- node.coreSetOwnerDocument(this);
- node.coreSetCharacterData(data, DOMSemantics.INSTANCE);
- return node;
+ try {
+ DOMComment node = coreGetNodeFactory().createNode(DOMComment.class);
+ node.coreSetOwnerDocument(this);
+ node.coreSetCharacterData(data, DOMSemantics.INSTANCE);
+ return node;
+ } catch (CoreModelException ex) {
+ throw DOMExceptionUtil.toUncheckedException(ex);
+ }
}
public final DocumentFragment DOMDocument.createDocumentFragment() {
Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMElementSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMElementSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMElementSupport.aj (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMElementSupport.aj Fri Mar 11 22:59:45 2016
@@ -113,27 +113,35 @@ public aspect DOMElementSupport {
}
public final void DOMElement.setAttribute(String name, String value) {
- NSUtil.validateName(name);
- coreSetAttribute(DOMSemantics.DOM1_ATTRIBUTE_MATCHER, null, name, null, value);
+ try {
+ NSUtil.validateName(name);
+ coreSetAttribute(DOMSemantics.DOM1_ATTRIBUTE_MATCHER, null, name, null, value);
+ } catch (CoreModelException ex) {
+ throw DOMExceptionUtil.toUncheckedException(ex);
+ }
}
public final void DOMElement.setAttributeNS(String namespaceURI, String qualifiedName, String value) throws DOMException {
- int i = NSUtil.validateQualifiedName(qualifiedName);
- String prefix;
- String localName;
- if (i == -1) {
- prefix = "";
- localName = qualifiedName;
- } else {
- prefix = qualifiedName.substring(0, i);
- localName = qualifiedName.substring(i+1);
- }
- if (XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(namespaceURI)) {
- coreSetAttribute(DOMSemantics.NAMESPACE_DECLARATION_MATCHER, null, NSUtil.getDeclaredPrefix(localName, prefix), null, value);
- } else {
- namespaceURI = NSUtil.normalizeNamespaceURI(namespaceURI);
- NSUtil.validateAttributeName(namespaceURI, localName, prefix);
- coreSetAttribute(DOMSemantics.DOM2_ATTRIBUTE_MATCHER, namespaceURI, localName, prefix, value);
+ try {
+ int i = NSUtil.validateQualifiedName(qualifiedName);
+ String prefix;
+ String localName;
+ if (i == -1) {
+ prefix = "";
+ localName = qualifiedName;
+ } else {
+ prefix = qualifiedName.substring(0, i);
+ localName = qualifiedName.substring(i+1);
+ }
+ if (XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(namespaceURI)) {
+ coreSetAttribute(DOMSemantics.NAMESPACE_DECLARATION_MATCHER, null, NSUtil.getDeclaredPrefix(localName, prefix), null, value);
+ } else {
+ namespaceURI = NSUtil.normalizeNamespaceURI(namespaceURI);
+ NSUtil.validateAttributeName(namespaceURI, localName, prefix);
+ coreSetAttribute(DOMSemantics.DOM2_ATTRIBUTE_MATCHER, namespaceURI, localName, prefix, value);
+ }
+ } catch (CoreModelException ex) {
+ throw DOMExceptionUtil.toUncheckedException(ex);
}
}
@@ -207,7 +215,11 @@ public aspect DOMElementSupport {
}
public final void DOMElement.setTextContent(String textContent) {
- coreSetCharacterData(textContent, DOMSemantics.INSTANCE);
+ try {
+ coreSetCharacterData(textContent, DOMSemantics.INSTANCE);
+ } catch (CoreModelException ex) {
+ throw DOMExceptionUtil.toUncheckedException(ex);
+ }
}
public final NodeList DOMElement.getElementsByTagName(String tagname) {
Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMParentNodeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMParentNodeSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMParentNodeSupport.aj (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMParentNodeSupport.aj Fri Mar 11 22:59:45 2016
@@ -68,7 +68,11 @@ public aspect DOMParentNodeSupport {
}
public final Node DOMParentNode.getLastChild() {
- return (Node)coreGetLastChild(DocumentWhitespaceFilter.INSTANCE);
+ try {
+ return (Node)coreGetLastChild(DocumentWhitespaceFilter.INSTANCE);
+ } catch (CoreModelException ex) {
+ throw DOMExceptionUtil.toUncheckedException(ex);
+ }
}
public final boolean DOMParentNode.hasChildNodes() {
Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMProcessingInstructionSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMProcessingInstructionSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMProcessingInstructionSupport.aj (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMProcessingInstructionSupport.aj Fri Mar 11 22:59:45 2016
@@ -38,7 +38,11 @@ public aspect DOMProcessingInstructionSu
}
public final void DOMProcessingInstruction.setData(String data) {
- coreSetCharacterData(data, DOMSemantics.INSTANCE);
+ try {
+ coreSetCharacterData(data, DOMSemantics.INSTANCE);
+ } catch (CoreModelException ex) {
+ throw DOMExceptionUtil.toUncheckedException(ex);
+ }
}
public final String DOMProcessingInstruction.getNodeName() {
Modified: webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/impl/mixin/AbderaAttributeMixin.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/impl/mixin/AbderaAttributeMixin.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/impl/mixin/AbderaAttributeMixin.aj (original)
+++ webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/impl/mixin/AbderaAttributeMixin.aj Fri Mar 11 22:59:45 2016
@@ -32,7 +32,11 @@ public aspect AbderaAttributeMixin {
}
public final Attribute AbderaAttribute.setText(String text) {
- coreSetCharacterData(text, FOMSemantics.INSTANCE);
- return this;
+ try {
+ coreSetCharacterData(text, FOMSemantics.INSTANCE);
+ return this;
+ } catch (CoreModelException ex) {
+ throw FOMSemantics.INSTANCE.toUncheckedException(ex);
+ }
}
}
Modified: webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/impl/mixin/AbderaProcessingInstructionMixin.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/impl/mixin/AbderaProcessingInstructionMixin.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/impl/mixin/AbderaProcessingInstructionMixin.aj (original)
+++ webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/impl/mixin/AbderaProcessingInstructionMixin.aj Fri Mar 11 22:59:45 2016
@@ -34,7 +34,11 @@ public aspect AbderaProcessingInstructio
@SuppressWarnings("unchecked")
public final <T extends ProcessingInstruction> T AbderaProcessingInstruction.setText(String text) {
- coreSetCharacterData(text, FOMSemantics.INSTANCE);
- return (T)this;
+ try {
+ coreSetCharacterData(text, FOMSemantics.INSTANCE);
+ return (T)this;
+ } catch (CoreModelException ex) {
+ throw FOMSemantics.INSTANCE.toUncheckedException(ex);
+ }
}
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuildableContext.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuildableContext.java?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuildableContext.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuildableContext.java Fri Mar 11 22:59:45 2016
@@ -23,6 +23,8 @@ import org.apache.axiom.core.CoreCDATASe
import org.apache.axiom.core.CoreCharacterDataNode;
import org.apache.axiom.core.CoreChildNode;
import org.apache.axiom.core.CoreDocument;
+import org.apache.axiom.core.CoreModelException;
+import org.apache.axiom.core.CoreModelStreamException;
import org.apache.axiom.core.CoreParentNode;
import org.apache.axiom.core.InputContext;
import org.apache.axiom.core.stream.NullXmlHandler;
@@ -89,11 +91,15 @@ final class BuildableContext extends Con
builderHandler.decrementActiveContextCount();
}
- private Context endContext() {
+ private Context endContext() throws StreamException {
target.coreSetState(CoreParentNode.COMPLETE);
target.coreSetInputContext(null);
if (pendingCharacterData != null) {
- target.coreSetCharacterData(pendingCharacterData, null);
+ try {
+ target.coreSetCharacterData(pendingCharacterData, null);
+ } catch (CoreModelException ex) {
+ throw new CoreModelStreamException(ex);
+ }
pendingCharacterData = null;
}
target = null;
@@ -195,7 +201,11 @@ final class BuildableContext extends Con
OMNamespace ns = builderHandler.nsCache.getOMNamespace(namespaceURI, prefix);
AxiomAttribute attr = builderHandler.nodeFactory.createNode(AxiomAttribute.class);
attr.internalSetLocalName(localName);
- attr.coreSetCharacterData(value, AxiomSemantics.INSTANCE);
+ try {
+ attr.coreSetCharacterData(value, AxiomSemantics.INSTANCE);
+ } catch (CoreModelException ex) {
+ throw new CoreModelStreamException(ex);
+ }
attr.internalSetNamespace(ns);
attr.coreSetType(type);
attr.coreSetSpecified(specified);
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java Fri Mar 11 22:59:45 2016
@@ -127,7 +127,11 @@ public class OMFactoryImpl implements OM
if (parent != null) {
((AxiomContainer)parent).addChild(node);
}
- node.coreSetCharacterData(content, AxiomSemantics.INSTANCE);
+ try {
+ node.coreSetCharacterData(content, AxiomSemantics.INSTANCE);
+ } catch (CoreModelException ex) {
+ throw AxiomExceptionTranslator.translate(ex);
+ }
return node;
}
@@ -192,7 +196,11 @@ public class OMFactoryImpl implements OM
OMContainer parent, String piTarget, String piData) {
AxiomProcessingInstruction node = createNode(AxiomProcessingInstruction.class);
node.coreSetTarget(piTarget);
- node.coreSetCharacterData(piData, AxiomSemantics.INSTANCE);
+ try {
+ node.coreSetCharacterData(piData, AxiomSemantics.INSTANCE);
+ } catch (CoreModelException ex) {
+ throw AxiomExceptionTranslator.translate(ex);
+ }
if (parent != null) {
((AxiomContainer)parent).addChild(node);
}
@@ -210,7 +218,11 @@ public class OMFactoryImpl implements OM
public final OMComment createOMComment(OMContainer parent, String content) {
AxiomComment node = createNode(AxiomComment.class);
- node.coreSetCharacterData(content, AxiomSemantics.INSTANCE);
+ try {
+ node.coreSetCharacterData(content, AxiomSemantics.INSTANCE);
+ } catch (CoreModelException ex) {
+ throw AxiomExceptionTranslator.translate(ex);
+ }
if (parent != null) {
((AxiomContainer)parent).addChild(node);
}
@@ -323,7 +335,11 @@ public class OMFactoryImpl implements OM
}
AxiomAttribute attr = createNode(AxiomAttribute.class);
attr.internalSetLocalName(localName);
- attr.coreSetCharacterData(value, AxiomSemantics.INSTANCE);
+ try {
+ attr.coreSetCharacterData(value, AxiomSemantics.INSTANCE);
+ } catch (CoreModelException ex) {
+ throw AxiomExceptionTranslator.translate(ex);
+ }
attr.internalSetNamespace(ns);
attr.coreSetType(OMConstants.XMLATTRTYPE_CDATA);
return attr;
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomAttributeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomAttributeSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomAttributeSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomAttributeSupport.aj Fri Mar 11 22:59:45 2016
@@ -52,7 +52,11 @@ public aspect AxiomAttributeSupport {
}
public final void AxiomAttribute.setAttributeValue(String value) {
- coreSetCharacterData(value, AxiomSemantics.INSTANCE);
+ try {
+ coreSetCharacterData(value, AxiomSemantics.INSTANCE);
+ } catch (CoreModelException ex) {
+ throw AxiomExceptionTranslator.translate(ex);
+ }
}
public final String AxiomAttribute.getAttributeType() {
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCDATASectionSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCDATASectionSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCDATASectionSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCDATASectionSupport.aj Fri Mar 11 22:59:45 2016
@@ -38,8 +38,4 @@ public aspect AxiomCDATASectionSupport {
throw AxiomExceptionTranslator.translate(ex);
}
}
-
- public final void AxiomCDATASection.build() {
- // TODO
- }
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCommentSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCommentSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCommentSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCommentSupport.aj Fri Mar 11 22:59:45 2016
@@ -41,7 +41,11 @@ public aspect AxiomCommentSupport {
}
public void AxiomComment.setValue(String text) {
- coreSetCharacterData(text, AxiomSemantics.INSTANCE);
+ try {
+ coreSetCharacterData(text, AxiomSemantics.INSTANCE);
+ } catch (CoreModelException ex) {
+ throw AxiomExceptionTranslator.translate(ex);
+ }
}
public final void AxiomComment.serialize(XMLStreamWriter writer, boolean cache) throws XMLStreamException {
@@ -54,8 +58,4 @@ public aspect AxiomCommentSupport {
public final void AxiomComment.buildWithAttachments() {
}
-
- public final void AxiomComment.build() {
- // TODO
- }
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj Fri Mar 11 22:59:45 2016
@@ -44,14 +44,12 @@ import org.apache.axiom.core.stream.XmlH
import org.apache.axiom.core.stream.sax.XmlHandlerContentHandler;
import org.apache.axiom.core.stream.stax.StAXPivot;
import org.apache.axiom.core.stream.stax.XMLStreamWriterNamespaceContextProvider;
-import org.apache.axiom.om.NodeUnavailableException;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.OMOutputFormat;
import org.apache.axiom.om.OMSerializable;
-import org.apache.axiom.om.OMSourcedElement;
import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axiom.om.OMXMLStreamReaderConfiguration;
import org.apache.axiom.om.impl.MTOMXMLStreamWriter;
@@ -141,47 +139,10 @@ public aspect AxiomContainerSupport {
}
public void AxiomContainer.addChild(OMNode omNode) {
- AxiomChildNode child = prepareNewChild(omNode);
-
- coreAppendChild(child);
-
- // For a normal OMNode, the incomplete status is
- // propogated up the tree.
- // However, a OMSourcedElement is self-contained
- // (it has an independent parser source).
- // So only propogate the incomplete setting if this
- // is a normal OMNode
- // TODO: this is crap and needs to be reviewed
- if (!child.isComplete() &&
- !(child instanceof OMSourcedElement)) {
- setComplete(false);
- }
- }
-
- public final void AxiomContainer.build() {
- Builder builder = coreGetBuilder();
- // builder is null. Meaning this is a programatical created element but it has children which are not completed
- // Build them all.
- if (builder == null && getState() == INCOMPLETE) {
- for (Iterator<OMNode> childrenIterator = getChildren(); childrenIterator.hasNext();) {
- OMNode omNode = childrenIterator.next();
- omNode.build();
- }
- } else {
- if (getState() == AxiomContainer.DISCARDING || getState() == AxiomContainer.DISCARDED) {
- throw new NodeUnavailableException();
- }
- if (builder != null && builder.isCompleted()) {
- log.debug("Builder is already complete.");
- }
- while (!isComplete()) {
-
- builder.next();
- if (builder.isCompleted() && !isComplete()) {
- log.debug("Builder is complete. Setting OMObject to complete.");
- setComplete(true);
- }
- }
+ try {
+ coreAppendChild(prepareNewChild(omNode));
+ } catch (CoreModelException ex) {
+ throw AxiomExceptionTranslator.translate(ex);
}
}
@@ -194,7 +155,11 @@ public aspect AxiomContainerSupport {
}
public void AxiomContainer.removeChildren() {
- coreRemoveChildren(AxiomSemantics.INSTANCE);
+ try {
+ coreRemoveChildren(AxiomSemantics.INSTANCE);
+ } catch (CoreModelException ex) {
+ throw AxiomExceptionTranslator.translate(ex);
+ }
}
private static final Mapper<CoreNode,OMNode> childrenMapper = new Mapper<CoreNode,OMNode>() {
@@ -352,18 +317,6 @@ public aspect AxiomContainerSupport {
serialize(writer, format, false);
}
- public final void AxiomContainer.notifyChildComplete() {
- if (getState() == INCOMPLETE && coreGetBuilder() == null) {
- for (Iterator<OMNode> iterator = getChildren(); iterator.hasNext(); ) {
- OMNode node = iterator.next();
- if (!node.isComplete()) {
- return;
- }
- }
- this.setComplete(true);
- }
- }
-
public final void AxiomContainer.close(boolean build) {
Builder builder = coreGetBuilder();
if (build) {
@@ -374,4 +327,9 @@ public aspect AxiomContainerSupport {
builder.close();
}
}
+
+ // TODO: overridden in AxiomSourcedElementSupport
+ public void AxiomContainer.setComplete(boolean complete) {
+ coreSetState(complete ? COMPLETE : INCOMPLETE);
+ }
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCoreParentNodeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCoreParentNodeSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCoreParentNodeSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCoreParentNodeSupport.aj Fri Mar 11 22:59:45 2016
@@ -18,11 +18,62 @@
*/
package org.apache.axiom.om.impl.mixin;
+import org.apache.axiom.core.CoreChildNode;
+import org.apache.axiom.core.CoreModelException;
+import org.apache.axiom.om.NodeUnavailableException;
+import org.apache.axiom.om.impl.common.AxiomExceptionTranslator;
import org.apache.axiom.om.impl.intf.AxiomCoreParentNode;
+import org.apache.axiom.om.impl.intf.AxiomSerializable;
+import org.apache.axiom.om.impl.intf.AxiomSourcedElement;
public aspect AxiomCoreParentNodeSupport {
public final boolean AxiomCoreParentNode.isComplete() {
- int state = getState();
- return state == COMPLETE || state == COMPACT;
+ try {
+ switch (getState()) {
+ case COMPACT:
+ return true;
+ case COMPLETE:
+ CoreChildNode child = coreGetFirstChild();
+ while (child != null) {
+ if (!(child instanceof AxiomSourcedElement || ((AxiomSerializable)child).isComplete())) {
+ return false;
+ }
+ child = child.coreGetNextSibling();
+ }
+ return true;
+ default:
+ return false;
+ }
+ } catch (CoreModelException ex) {
+ throw AxiomExceptionTranslator.translate(ex);
+ }
+ }
+
+ public final void AxiomCoreParentNode.build() {
+ try {
+ switch (getState()) {
+ case DISCARDING:
+ case DISCARDED:
+ throw new NodeUnavailableException();
+ case COMPLETE:
+ case INCOMPLETE:
+ // First do the children that have already been created; only they need recursion.
+ CoreChildNode child = coreGetFirstChildIfAvailable();
+ while (child != null) {
+ // Historically, Axiom skipped OMSourcedElements in the tree. Quote: "The
+ // OMSourcedElement has its own isolated builder/reader during the
+ // expansion process."
+ if (!(child instanceof AxiomSourcedElement)) {
+ ((AxiomSerializable)child).build();
+ }
+ child = child.coreGetNextSibling();
+ }
+ // Now build the parent; no need to recurse because all descendants will also be
+ // complete.
+ coreBuild();
+ }
+ } catch (CoreModelException ex) {
+ throw AxiomExceptionTranslator.translate(ex);
+ }
}
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocumentSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocumentSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocumentSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocumentSupport.aj Fri Mar 11 22:59:45 2016
@@ -86,10 +86,6 @@ public aspect AxiomDocumentSupport {
coreSetStandalone("yes".equalsIgnoreCase(standalone));
}
- public final void AxiomDocument.setComplete(boolean complete) {
- coreSetState(complete ? COMPLETE : INCOMPLETE);
- }
-
public final void AxiomDocument.checkChild(OMNode child) {
if (child instanceof OMElement) {
if (getOMDocumentElement() != null) {
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj Fri Mar 11 22:59:45 2016
@@ -60,7 +60,6 @@ import org.apache.axiom.om.impl.common.N
import org.apache.axiom.om.impl.common.NamespaceIterator;
import org.apache.axiom.om.impl.common.OMNamespaceImpl;
import org.apache.axiom.om.impl.intf.AxiomAttribute;
-import org.apache.axiom.om.impl.intf.AxiomContainer;
import org.apache.axiom.om.impl.intf.AxiomElement;
import org.apache.axiom.om.impl.intf.AxiomNamespaceDeclaration;
import org.apache.axiom.om.impl.intf.Sequence;
@@ -230,7 +229,11 @@ public aspect AxiomElementSupport {
// Not final because overridden in Abdera
public void AxiomElement.setText(String text) {
- coreSetCharacterData(text, AxiomSemantics.INSTANCE);
+ try {
+ coreSetCharacterData(text, AxiomSemantics.INSTANCE);
+ } catch (CoreModelException ex) {
+ throw AxiomExceptionTranslator.translate(ex);
+ }
}
public final void AxiomElement.setText(QName qname) {
@@ -540,18 +543,6 @@ public aspect AxiomElementSupport {
return sw.toString();
}
- public void AxiomElement.setComplete(boolean complete) {
- coreSetState(complete ? COMPLETE : INCOMPLETE);
- AxiomContainer parent = (AxiomContainer)coreGetParent();
- if (parent != null) {
- if (!complete) {
- parent.setComplete(false);
- } else {
- parent.notifyChildComplete();
- }
- }
- }
-
public final OMElement AxiomElement.cloneOMElement() {
return (OMElement)clone(null);
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomNamespaceDeclarationSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomNamespaceDeclarationSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomNamespaceDeclarationSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomNamespaceDeclarationSupport.aj Fri Mar 11 22:59:45 2016
@@ -49,8 +49,12 @@ public aspect AxiomNamespaceDeclarationS
}
public final void AxiomNamespaceDeclaration.setDeclaredNamespace(OMNamespace declaredNamespace) {
- this.declaredNamespace = declaredNamespace;
- coreSetCharacterData(declaredNamespace.getNamespaceURI(), AxiomSemantics.INSTANCE);
+ try {
+ this.declaredNamespace = declaredNamespace;
+ coreSetCharacterData(declaredNamespace.getNamespaceURI(), AxiomSemantics.INSTANCE);
+ } catch (CoreModelException ex) {
+ throw AxiomExceptionTranslator.translate(ex);
+ }
}
public final void AxiomNamespaceDeclaration.build() {
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomProcessingInstructionSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomProcessingInstructionSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomProcessingInstructionSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomProcessingInstructionSupport.aj Fri Mar 11 22:59:45 2016
@@ -44,7 +44,11 @@ public aspect AxiomProcessingInstruction
}
public final void AxiomProcessingInstruction.setValue(String value) {
- coreSetCharacterData(value, AxiomSemantics.INSTANCE);
+ try {
+ coreSetCharacterData(value, AxiomSemantics.INSTANCE);
+ } catch (CoreModelException ex) {
+ throw AxiomExceptionTranslator.translate(ex);
+ }
}
public final void AxiomProcessingInstruction.serialize(XMLStreamWriter writer, boolean cache) throws XMLStreamException {
@@ -57,8 +61,4 @@ public aspect AxiomProcessingInstruction
public final void AxiomProcessingInstruction.buildWithAttachments() {
}
-
- public final void AxiomProcessingInstruction.build() {
- // TODO
- }
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj Fri Mar 11 22:59:45 2016
@@ -471,14 +471,8 @@ public aspect AxiomSourcedElementSupport
}
}
- /**
- * setComplete override The OMSourcedElement has its own isolated builder/reader during the
- * expansion process. Thus calls to setCompete should stop here and not propogate up to the
- * parent (which may have a different builder or no builder).
- */
- public void AxiomSourcedElement.setComplete(boolean complete) {
- coreSetState(complete ? COMPLETE : INCOMPLETE);
- if (complete && dataSource != null) {
+ public void AxiomSourcedElement.completed() {
+ if (dataSource != null) {
if (dataSource instanceof OMDataSourceExt) {
((OMDataSourceExt)dataSource).close();
}
Modified: webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ParentNode.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ParentNode.java?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ParentNode.java (original)
+++ webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ParentNode.java Fri Mar 11 22:59:45 2016
@@ -38,15 +38,19 @@ public abstract class ParentNode extends
// /
public final Node appendChild(Node newChild) throws DOMException {
- checkNewChild(newChild, null);
- if (newChild instanceof CoreChildNode) {
- coreAppendChild((CoreChildNode)newChild);
- } else if (newChild instanceof CoreDocumentFragment) {
- coreAppendChildren((CoreDocumentFragment)newChild);
- } else {
- throw newDOMException(DOMException.HIERARCHY_REQUEST_ERR);
+ try {
+ checkNewChild(newChild, null);
+ if (newChild instanceof CoreChildNode) {
+ coreAppendChild((CoreChildNode)newChild);
+ } else if (newChild instanceof CoreDocumentFragment) {
+ coreAppendChildren((CoreDocumentFragment)newChild);
+ } else {
+ throw newDOMException(DOMException.HIERARCHY_REQUEST_ERR);
+ }
+ return newChild;
+ } catch (CoreModelException ex) {
+ throw DOMExceptionUtil.toUncheckedException(ex);
}
- return newChild;
}
private void checkNewChild(Node newChild, Node replacedChild) {
Modified: webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMContent.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMContent.java?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMContent.java (original)
+++ webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMContent.java Fri Mar 11 22:59:45 2016
@@ -35,6 +35,7 @@ import org.apache.abdera.model.Element;
import org.apache.abdera.model.ElementWrapper;
import org.apache.abdera.util.Constants;
import org.apache.axiom.attachments.ByteArrayDataSource;
+import org.apache.axiom.core.CoreModelException;
import org.apache.axiom.fom.AbderaContent;
import org.apache.axiom.fom.AbderaElement;
import org.apache.axiom.fom.FOMSemantics;
@@ -85,33 +86,37 @@ public class FOMContent extends FOMExten
}
public <T extends Element> Content setValueElement(T value) {
- if (value != null) {
- if (this.getFirstElement() != null)
- this.getFirstElement().discard();
-
- MimeType mtype = this.getMimeType();
- if (mtype == null) {
- String mt = getFactory().getMimeType(value);
- if (mt != null) {
- setMimeType(mt);
- mtype = getMimeType();
- }
- }
-
- if (value instanceof Div && !getContentType().equals(Content.Type.XML))
- setContentType(Content.Type.XHTML);
- else {
+ try {
+ if (value != null) {
+ if (this.getFirstElement() != null)
+ this.getFirstElement().discard();
+
+ MimeType mtype = this.getMimeType();
if (mtype == null) {
- setContentType(Content.Type.XML);
+ String mt = getFactory().getMimeType(value);
+ if (mt != null) {
+ setMimeType(mt);
+ mtype = getMimeType();
+ }
+ }
+
+ if (value instanceof Div && !getContentType().equals(Content.Type.XML))
+ setContentType(Content.Type.XHTML);
+ else {
+ if (mtype == null) {
+ setContentType(Content.Type.XML);
+ }
}
+ AbderaElement el = (AbderaElement)(value instanceof ElementWrapper ? ((ElementWrapper)value).getInternal() : value);
+ removeChildren();
+ _addChild(el);
+ } else {
+ coreRemoveChildren(FOMSemantics.INSTANCE);
}
- AbderaElement el = (AbderaElement)(value instanceof ElementWrapper ? ((ElementWrapper)value).getInternal() : value);
- removeChildren();
- _addChild(el);
- } else {
- coreRemoveChildren(FOMSemantics.INSTANCE);
+ return this;
+ } catch (CoreModelException ex) {
+ throw FOMSemantics.INSTANCE.toUncheckedException(ex);
}
- return this;
}
public MimeType getMimeType() {
@@ -169,17 +174,21 @@ public class FOMContent extends FOMExten
}
public Content setDataHandler(DataHandler dataHandler) {
- if (!Type.MEDIA.equals(getContentType()))
- throw new IllegalArgumentException();
- if (dataHandler.getContentType() != null) {
- try {
- setMimeType(dataHandler.getContentType());
- } catch (Exception e) {
+ try {
+ if (!Type.MEDIA.equals(getContentType()))
+ throw new IllegalArgumentException();
+ if (dataHandler.getContentType() != null) {
+ try {
+ setMimeType(dataHandler.getContentType());
+ } catch (Exception e) {
+ }
}
+ coreRemoveChildren(FOMSemantics.INSTANCE);
+ addChild(getOMFactory().createOMText(dataHandler, true));
+ return this;
+ } catch (CoreModelException ex) {
+ throw FOMSemantics.INSTANCE.toUncheckedException(ex);
}
- coreRemoveChildren(FOMSemantics.INSTANCE);
- addChild(getOMFactory().createOMText(dataHandler, true));
- return this;
}
public String getValue() {
@@ -204,19 +213,23 @@ public class FOMContent extends FOMExten
}
public <T extends Element> T setText(Content.Type type, String value) {
- setContentType(type);
- if (value != null) {
- OMNode child = this.getFirstOMChild();
- while (child != null) {
- if (child.getType() == OMNode.TEXT_NODE) {
- child.detach();
+ try {
+ setContentType(type);
+ if (value != null) {
+ OMNode child = this.getFirstOMChild();
+ while (child != null) {
+ if (child.getType() == OMNode.TEXT_NODE) {
+ child.detach();
+ }
+ child = child.getNextOMSibling();
}
- child = child.getNextOMSibling();
- }
- getOMFactory().createOMText(this, value);
- } else
- coreRemoveChildren(FOMSemantics.INSTANCE);
- return (T)this;
+ getOMFactory().createOMText(this, value);
+ } else
+ coreRemoveChildren(FOMSemantics.INSTANCE);
+ return (T)this;
+ } catch (CoreModelException ex) {
+ throw FOMSemantics.INSTANCE.toUncheckedException(ex);
+ }
}
// TODO: the AspectJ compiler doesn't like this
@@ -225,55 +238,59 @@ public class FOMContent extends FOMExten
// }
public Content setValue(String value) {
- if (value != null)
- removeAttribute(SRC);
- if (value != null) {
- Type type = getContentType();
- if (Type.TEXT.equals(type)) {
- coreRemoveChildren(FOMSemantics.INSTANCE);
- setText(type, value);
- } else if (Type.HTML.equals(type)) {
- coreRemoveChildren(FOMSemantics.INSTANCE);
- setText(type, value);
- } else if (Type.XHTML.equals(type)) {
- IRI baseUri = null;
- Element element = null;
- value = "<div xmlns=\"" + XHTML_NS + "\">" + value + "</div>";
- try {
- baseUri = getResolvedBaseUri();
- element = _parse(value, baseUri);
- } catch (Exception e) {
- }
- if (element != null && element instanceof Div)
- setValueElement((Div)element);
- } else if (Type.XML.equals(type)) {
- IRI baseUri = null;
- Element element = null;
- try {
- baseUri = getResolvedBaseUri();
- element = _parse(value, baseUri);
- } catch (Exception e) {
- }
- if (element != null)
- setValueElement(element);
- try {
- if (getMimeType() == null)
- setMimeType("application/xml");
- } catch (Exception e) {
+ try {
+ if (value != null)
+ removeAttribute(SRC);
+ if (value != null) {
+ Type type = getContentType();
+ if (Type.TEXT.equals(type)) {
+ coreRemoveChildren(FOMSemantics.INSTANCE);
+ setText(type, value);
+ } else if (Type.HTML.equals(type)) {
+ coreRemoveChildren(FOMSemantics.INSTANCE);
+ setText(type, value);
+ } else if (Type.XHTML.equals(type)) {
+ IRI baseUri = null;
+ Element element = null;
+ value = "<div xmlns=\"" + XHTML_NS + "\">" + value + "</div>";
+ try {
+ baseUri = getResolvedBaseUri();
+ element = _parse(value, baseUri);
+ } catch (Exception e) {
+ }
+ if (element != null && element instanceof Div)
+ setValueElement((Div)element);
+ } else if (Type.XML.equals(type)) {
+ IRI baseUri = null;
+ Element element = null;
+ try {
+ baseUri = getResolvedBaseUri();
+ element = _parse(value, baseUri);
+ } catch (Exception e) {
+ }
+ if (element != null)
+ setValueElement(element);
+ try {
+ if (getMimeType() == null)
+ setMimeType("application/xml");
+ } catch (Exception e) {
+ }
+ } else if (Type.MEDIA.equals(type)) {
+ coreRemoveChildren(FOMSemantics.INSTANCE);
+ setText(type, value);
+ try {
+ if (getMimeType() == null)
+ setMimeType("text/plain");
+ } catch (Exception e) {
+ }
}
- } else if (Type.MEDIA.equals(type)) {
+ } else {
coreRemoveChildren(FOMSemantics.INSTANCE);
- setText(type, value);
- try {
- if (getMimeType() == null)
- setMimeType("text/plain");
- } catch (Exception e) {
- }
}
- } else {
- coreRemoveChildren(FOMSemantics.INSTANCE);
+ return this;
+ } catch (CoreModelException ex) {
+ throw FOMSemantics.INSTANCE.toUncheckedException(ex);
}
- return this;
}
public String getWrappedValue() {
Modified: webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMDiv.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMDiv.java?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMDiv.java (original)
+++ webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMDiv.java Fri Mar 11 22:59:45 2016
@@ -30,6 +30,7 @@ import javax.xml.stream.XMLStreamWriter;
import org.apache.abdera.i18n.iri.IRI;
import org.apache.abdera.model.Div;
+import org.apache.axiom.core.CoreModelException;
import org.apache.axiom.fom.AbderaDiv;
import org.apache.axiom.fom.FOMSemantics;
import org.apache.axiom.om.OMElement;
@@ -82,19 +83,23 @@ public class FOMDiv extends FOMExtensibl
}
public void setValue(String value) {
- coreRemoveChildren(FOMSemantics.INSTANCE);
- if (value != null) {
- IRI baseUri = null;
- value = "<div xmlns=\"" + XHTML_NS + "\">" + value + "</div>";
- OMElement element = null;
- try {
- baseUri = getResolvedBaseUri();
- element = (OMElement)_parse(value, baseUri);
- } catch (Exception e) {
- }
- for (Iterator<?> i = element.getChildren(); i.hasNext();) {
- this.addChild((OMNode)i.next());
+ try {
+ coreRemoveChildren(FOMSemantics.INSTANCE);
+ if (value != null) {
+ IRI baseUri = null;
+ value = "<div xmlns=\"" + XHTML_NS + "\">" + value + "</div>";
+ OMElement element = null;
+ try {
+ baseUri = getResolvedBaseUri();
+ element = (OMElement)_parse(value, baseUri);
+ } catch (Exception e) {
+ }
+ for (Iterator<?> i = element.getChildren(); i.hasNext();) {
+ this.addChild((OMNode)i.next());
+ }
}
+ } catch (CoreModelException ex) {
+ throw FOMSemantics.INSTANCE.toUncheckedException(ex);
}
}
Modified: webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMElement.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMElement.java?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMElement.java (original)
+++ webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMElement.java Fri Mar 11 22:59:45 2016
@@ -82,7 +82,11 @@ import org.apache.axiom.om.impl.intf.Axi
public class FOMElement extends FOMChildNode implements AbderaElement, AxiomElement {
// Overridden in subclasses!
public void _addChild(AbderaElement element) {
- coreAppendChild(element);
+ try {
+ coreAppendChild(element);
+ } catch (CoreModelException ex) {
+ throw FOMSemantics.INSTANCE.toUncheckedException(ex);
+ }
}
protected void setParentDocument(Document parent) {
@@ -218,12 +222,16 @@ public class FOMElement extends FOMChild
}
public <T extends Element> T setAttributeValue(QName qname, String value) {
- if (value == null) {
- coreRemoveAttribute(FOMSemantics.ATTRIBUTE_MATCHER, qname.getNamespaceURI(), qname.getLocalPart(), FOMSemantics.INSTANCE);
- } else {
- coreSetAttribute(FOMSemantics.ATTRIBUTE_MATCHER, qname.getNamespaceURI(), qname.getLocalPart(), qname.getPrefix(), value);
+ try {
+ if (value == null) {
+ coreRemoveAttribute(FOMSemantics.ATTRIBUTE_MATCHER, qname.getNamespaceURI(), qname.getLocalPart(), FOMSemantics.INSTANCE);
+ } else {
+ coreSetAttribute(FOMSemantics.ATTRIBUTE_MATCHER, qname.getNamespaceURI(), qname.getLocalPart(), qname.getPrefix(), value);
+ }
+ return (T)this;
+ } catch (CoreModelException ex) {
+ throw FOMSemantics.INSTANCE.toUncheckedException(ex);
}
- return (T)this;
}
private static final IdentityMapper<AbderaElement> abderaElementMapper = new IdentityMapper<AbderaElement>();
@@ -258,13 +266,17 @@ public class FOMElement extends FOMChild
}
public void _setChild(QName qname, Element element) {
- AbderaElement e = _getFirstChildWithName(qname);
- if (e == null && element != null) {
- coreAppendChild((AbderaElement)element);
- } else if (e != null && element != null) {
- e.coreReplaceWith((AbderaElement)element, FOMSemantics.INSTANCE);
- } else if (e != null && element == null) {
- e.coreDetach(FOMSemantics.INSTANCE);
+ try {
+ AbderaElement e = _getFirstChildWithName(qname);
+ if (e == null && element != null) {
+ coreAppendChild((AbderaElement)element);
+ } else if (e != null && element != null) {
+ e.coreReplaceWith((AbderaElement)element, FOMSemantics.INSTANCE);
+ } else if (e != null && element == null) {
+ e.coreDetach(FOMSemantics.INSTANCE);
+ }
+ } catch (CoreModelException ex) {
+ throw FOMSemantics.INSTANCE.toUncheckedException(ex);
}
}
@@ -372,18 +384,22 @@ public class FOMElement extends FOMChild
}
public void setText(String text) {
- if (text != null) {
- OMNode child = this.getFirstOMChild();
- while (child != null) {
- if (child.getType() == OMNode.TEXT_NODE) {
- child.detach();
+ try {
+ if (text != null) {
+ OMNode child = this.getFirstOMChild();
+ while (child != null) {
+ if (child.getType() == OMNode.TEXT_NODE) {
+ child.detach();
+ }
+ child = child.getNextOMSibling();
}
- child = child.getNextOMSibling();
- }
- getOMFactory().createOMText(this, text);
- } else
- coreRemoveChildren(FOMSemantics.INSTANCE);
- // return (T)this;
+ getOMFactory().createOMText(this, text);
+ } else
+ coreRemoveChildren(FOMSemantics.INSTANCE);
+ // return (T)this;
+ } catch (CoreModelException ex) {
+ throw FOMSemantics.INSTANCE.toUncheckedException(ex);
+ }
}
public String getText() {
@@ -649,9 +665,13 @@ public class FOMElement extends FOMChild
}
public <T extends Element> T setText(DataHandler handler) {
- coreRemoveChildren(FOMSemantics.INSTANCE);
- addChild(getOMFactory().createOMText(handler, true));
- return (T)this;
+ try {
+ coreRemoveChildren(FOMSemantics.INSTANCE);
+ addChild(getOMFactory().createOMText(handler, true));
+ return (T)this;
+ } catch (CoreModelException ex) {
+ throw FOMSemantics.INSTANCE.toUncheckedException(ex);
+ }
}
public WriterOptions getDefaultWriterOptions() {
Modified: webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMText.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMText.java?rev=1734640&r1=1734639&r2=1734640&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMText.java (original)
+++ webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMText.java Fri Mar 11 22:59:45 2016
@@ -27,6 +27,7 @@ import org.apache.abdera.model.Div;
import org.apache.abdera.model.Element;
import org.apache.abdera.model.Text;
import org.apache.abdera.util.Constants;
+import org.apache.axiom.core.CoreModelException;
import org.apache.axiom.fom.AbderaDiv;
import org.apache.axiom.fom.AbderaText;
import org.apache.axiom.fom.FOMSemantics;
@@ -68,15 +69,19 @@ public class FOMText extends FOMElement
}
public Text setValueElement(Div value) {
- if (value != null) {
- if (_getFirstChildWithName(Constants.DIV) != null)
- _getFirstChildWithName(Constants.DIV).discard();
- setTextType(Text.Type.XHTML);
- removeChildren();
- _addChild((AbderaDiv)value);
- } else
- coreRemoveChildren(FOMSemantics.INSTANCE);
- return this;
+ try {
+ if (value != null) {
+ if (_getFirstChildWithName(Constants.DIV) != null)
+ _getFirstChildWithName(Constants.DIV).discard();
+ setTextType(Text.Type.XHTML);
+ removeChildren();
+ _addChild((AbderaDiv)value);
+ } else
+ coreRemoveChildren(FOMSemantics.INSTANCE);
+ return this;
+ } catch (CoreModelException ex) {
+ throw FOMSemantics.INSTANCE.toUncheckedException(ex);
+ }
}
public String getValue() {
@@ -99,43 +104,51 @@ public class FOMText extends FOMElement
// }
public <T extends Element> T setText(Text.Type type, String value) {
- setTextType(type);
- if (value != null) {
- OMNode child = this.getFirstOMChild();
- while (child != null) {
- if (child.getType() == OMNode.TEXT_NODE) {
- child.detach();
+ try {
+ setTextType(type);
+ if (value != null) {
+ OMNode child = this.getFirstOMChild();
+ while (child != null) {
+ if (child.getType() == OMNode.TEXT_NODE) {
+ child.detach();
+ }
+ child = child.getNextOMSibling();
}
- child = child.getNextOMSibling();
- }
- getOMFactory().createOMText(this, value);
- } else
- coreRemoveChildren(FOMSemantics.INSTANCE);
- return (T)this;
+ getOMFactory().createOMText(this, value);
+ } else
+ coreRemoveChildren(FOMSemantics.INSTANCE);
+ return (T)this;
+ } catch (CoreModelException ex) {
+ throw FOMSemantics.INSTANCE.toUncheckedException(ex);
+ }
}
public Text setValue(String value) {
- if (value != null) {
- Type type = getTextType();
- if (Type.TEXT.equals(type)) {
- setText(type, value);
- } else if (Type.HTML.equals(type)) {
- setText(type, value);
- } else if (Type.XHTML.equals(type)) {
- IRI baseUri = null;
- value = "<div xmlns=\"" + XHTML_NS + "\">" + value + "</div>";
- Element element = null;
- try {
- baseUri = getResolvedBaseUri();
- element = _parse(value, baseUri);
- } catch (Exception e) {
+ try {
+ if (value != null) {
+ Type type = getTextType();
+ if (Type.TEXT.equals(type)) {
+ setText(type, value);
+ } else if (Type.HTML.equals(type)) {
+ setText(type, value);
+ } else if (Type.XHTML.equals(type)) {
+ IRI baseUri = null;
+ value = "<div xmlns=\"" + XHTML_NS + "\">" + value + "</div>";
+ Element element = null;
+ try {
+ baseUri = getResolvedBaseUri();
+ element = _parse(value, baseUri);
+ } catch (Exception e) {
+ }
+ if (element != null && element instanceof Div)
+ setValueElement((Div)element);
}
- if (element != null && element instanceof Div)
- setValueElement((Div)element);
- }
- } else
- coreRemoveChildren(FOMSemantics.INSTANCE);
- return this;
+ } else
+ coreRemoveChildren(FOMSemantics.INSTANCE);
+ return this;
+ } catch (CoreModelException ex) {
+ throw FOMSemantics.INSTANCE.toUncheckedException(ex);
+ }
}
public String getWrappedValue() {