Author: veithen
Date: Sat Oct 3 11:39:49 2015
New Revision: 1706552
URL: http://svn.apache.org/viewvc?rev=1706552&view=rev
Log:
Further decouple fom-impl from the Axiom API.
Modified:
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaCategoriesMixin.aj
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaCollectionMixin.aj
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaElement.java
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/CategorizableMixin.aj
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/FOMElement.java
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMEntry.java
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMExtensibleElement.java
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMFactory.java
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMFeed.java
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMService.java
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMSource.java
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMText.java
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMWorkspace.java
Modified:
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaCategoriesMixin.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaCategoriesMixin.aj?rev=1706552&r1=1706551&r2=1706552&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaCategoriesMixin.aj
(original)
+++
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaCategoriesMixin.aj
Sat Oct 3 11:39:49 2015
@@ -30,7 +30,7 @@ import org.apache.abdera.model.Category;
public aspect AbderaCategoriesMixin {
public final Categories AbderaCategories.addCategory(Category category) {
- coreAppendChild((AbderaCategory)category, false);
+ _addChild((AbderaCategory)category);
return this;
}
Modified:
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaCollectionMixin.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaCollectionMixin.aj?rev=1706552&r1=1706551&r2=1706552&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaCollectionMixin.aj
(original)
+++
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaCollectionMixin.aj
Sat Oct 3 11:39:49 2015
@@ -187,7 +187,7 @@ public aspect AbderaCollectionMixin {
}
public final Collection AbderaCollection.addCategories(Categories
categories) {
- coreAppendChild((AbderaCategories)categories, false);
+ _addChild((AbderaCategories)categories);
return this;
}
Modified:
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaElement.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaElement.java?rev=1706552&r1=1706551&r2=1706552&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaElement.java
(original)
+++
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaElement.java
Sat Oct 3 11:39:49 2015
@@ -27,6 +27,7 @@ import org.apache.abdera.model.Element;
import org.apache.axiom.core.CoreNSAwareElement;
public interface AbderaElement extends Element, AbderaChildNode,
CoreNSAwareElement {
+ void _addChild(AbderaElement element);
<E extends Element> List<E> _getChildrenAsSet(QName qname);
void _setChild(QName qname, Element element);
Iterator<AbderaElement> _getChildrenWithName(QName qname);
Modified:
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/CategorizableMixin.aj
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/CategorizableMixin.aj?rev=1706552&r1=1706551&r2=1706552&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/CategorizableMixin.aj
(original)
+++
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/CategorizableMixin.aj
Sat Oct 3 11:39:49 2015
@@ -35,6 +35,6 @@ public aspect CategorizableMixin {
// Do nothing, shouldn't happen
}
}
- coreAppendChild((AbderaCategory)category, false);
+ _addChild((AbderaCategory)category);
}
}
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=1706552&r1=1706551&r2=1706552&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
Sat Oct 3 11:39:49 2015
@@ -36,6 +36,7 @@ import org.apache.abdera.model.ElementWr
import org.apache.abdera.util.Constants;
import org.apache.axiom.attachments.ByteArrayDataSource;
import org.apache.axiom.fom.AbderaContent;
+import org.apache.axiom.fom.AbderaElement;
import org.apache.axiom.fom.IRIUtil;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMNode;
@@ -91,9 +92,9 @@ public class FOMContent extends FOMExten
setContentType(Content.Type.XML);
}
}
- OMElement el = (OMElement)(value instanceof ElementWrapper ?
((ElementWrapper)value).getInternal() : value);
+ AbderaElement el = (AbderaElement)(value instanceof ElementWrapper
? ((ElementWrapper)value).getInternal() : value);
removeChildren();
- addChild(el);
+ _addChild(el);
} else {
_removeAllChildren();
}
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=1706552&r1=1706551&r2=1706552&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
Sat Oct 3 11:39:49 2015
@@ -82,6 +82,10 @@ import org.apache.axiom.om.impl.intf.Axi
@SuppressWarnings("unchecked")
public class FOMElement extends FOMChildNode implements AbderaElement,
AxiomElement {
+ public void _addChild(AbderaElement element) {
+ coreAppendChild(element, false);
+ }
+
protected void setParentDocument(Document parent) {
((OMContainer)parent).addChild(this);
}
Modified:
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMEntry.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMEntry.java?rev=1706552&r1=1706551&r2=1706552&view=diff
==============================================================================
---
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMEntry.java
(original)
+++
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMEntry.java
Sat Oct 3 11:39:49 2015
@@ -65,7 +65,8 @@ import org.apache.abdera.model.Text;
import org.apache.abdera.parser.stax.util.FOMHelper;
import org.apache.abdera.util.MimeTypeHelper;
import org.apache.axiom.fom.AbderaEntry;
-import org.apache.axiom.om.OMElement;
+import org.apache.axiom.fom.AbderaLink;
+import org.apache.axiom.fom.AbderaPerson;
@SuppressWarnings( {"unchecked", "deprecation"})
public class FOMEntry extends FOMExtensibleElement implements AbderaEntry {
@@ -78,7 +79,7 @@ public class FOMEntry extends FOMExtensi
}
public Entry addAuthor(Person person) {
- addChild((OMElement)person);
+ _addChild((AbderaPerson)person);
return this;
}
@@ -274,7 +275,7 @@ public class FOMEntry extends FOMExtensi
}
public Entry addContributor(Person person) {
- addChild((OMElement)person);
+ _addChild((AbderaPerson)person);
return this;
}
@@ -346,7 +347,7 @@ public class FOMEntry extends FOMExtensi
}
public Entry addLink(Link link) {
- addChild((OMElement)link);
+ _addChild((AbderaLink)link);
return this;
}
Modified:
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMExtensibleElement.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMExtensibleElement.java?rev=1706552&r1=1706551&r2=1706552&view=diff
==============================================================================
---
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMExtensibleElement.java
(original)
+++
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMExtensibleElement.java
Sat Oct 3 11:39:49 2015
@@ -26,6 +26,7 @@ import org.apache.abdera.model.ElementWr
import org.apache.abdera.model.ExtensibleElement;
import org.apache.abdera.parser.stax.util.FOMElementIteratorWrapper;
import org.apache.abdera.parser.stax.util.FOMExtensionIterator;
+import org.apache.axiom.fom.AbderaElement;
import org.apache.axiom.fom.AbderaExtensibleElement;
import org.apache.axiom.fom.FOMList;
import org.apache.axiom.om.OMElement;
@@ -59,7 +60,7 @@ public class FOMExtensibleElement extend
QName qname = extension.getQName();
String prefix = qname.getPrefix();
declareIfNecessary(qname.getNamespaceURI(), prefix);
- addChild((OMElement)extension);
+ _addChild((AbderaElement)extension);
return (T)this;
}
Modified:
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMFactory.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMFactory.java?rev=1706552&r1=1706551&r2=1706552&view=diff
==============================================================================
---
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMFactory.java
(original)
+++
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMFactory.java
Sat Oct 3 11:39:49 2015
@@ -474,7 +474,12 @@ public class FOMFactory extends OMFactor
private <T extends FOMElement> T createElement(Class<T> type, QName qname,
OMContainer parent) {
T element = createNode(type);
if (parent != null) {
- parent.addChild(element);
+ // TODO: not very elegant
+ if (parent instanceof FOMElement) {
+ ((FOMElement)parent)._addChild(element);
+ } else {
+ parent.addChild(element);
+ }
}
String namespace = qname.getNamespaceURI();
String prefix = qname.getPrefix();
Modified:
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMFeed.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMFeed.java?rev=1706552&r1=1706551&r2=1706552&view=diff
==============================================================================
---
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMFeed.java
(original)
+++
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMFeed.java
Sat Oct 3 11:39:49 2015
@@ -29,6 +29,8 @@ import org.apache.abdera.i18n.iri.IRI;
import org.apache.abdera.model.Entry;
import org.apache.abdera.model.Feed;
import org.apache.abdera.model.Source;
+import org.apache.axiom.fom.AbderaElement;
+import org.apache.axiom.fom.AbderaEntry;
import org.apache.axiom.fom.AbderaFeed;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMNode;
@@ -39,7 +41,7 @@ public class FOMFeed extends FOMSource i
}
public Feed addEntry(Entry entry) {
- addChild((OMElement)entry);
+ _addChild((AbderaEntry)entry);
return this;
}
@@ -81,15 +83,15 @@ public class FOMFeed extends FOMSource i
}
@Override
- public void addChild(OMNode node) {
- if (isComplete() && node instanceof OMElement && !(node instanceof
Entry)) {
- OMElement el = (OMElement)_getFirstChildWithName(ENTRY);
- if (el != null) {
- el.insertSiblingBefore(node);
+ public void _addChild(AbderaElement element) {
+ if (!(element instanceof Entry)) {
+ AbderaElement entry = _getFirstChildWithName(ENTRY);
+ if (entry != null) {
+ entry.coreInsertSiblingBefore(element);
return;
}
}
- super.addChild(node);
+ coreAppendChild(element, false);
}
public Feed sortEntriesByUpdated(boolean new_first) {
Modified:
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMService.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMService.java?rev=1706552&r1=1706551&r2=1706552&view=diff
==============================================================================
---
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMService.java
(original)
+++
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMService.java
Sat Oct 3 11:39:49 2015
@@ -29,6 +29,7 @@ import org.apache.abdera.model.Collectio
import org.apache.abdera.model.Service;
import org.apache.abdera.model.Workspace;
import org.apache.axiom.fom.AbderaService;
+import org.apache.axiom.fom.AbderaWorkspace;
import org.apache.axiom.om.OMElement;
@SuppressWarnings("deprecation")
@@ -53,7 +54,7 @@ public class FOMService extends FOMExten
}
public Service addWorkspace(Workspace workspace) {
- addChild((OMElement)workspace);
+ _addChild((AbderaWorkspace)workspace);
return this;
}
Modified:
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMSource.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMSource.java?rev=1706552&r1=1706551&r2=1706552&view=diff
==============================================================================
---
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMSource.java
(original)
+++
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMSource.java
Sat Oct 3 11:39:49 2015
@@ -51,8 +51,9 @@ import org.apache.abdera.model.Person;
import org.apache.abdera.model.Source;
import org.apache.abdera.model.Text;
import org.apache.abdera.parser.stax.util.FOMHelper;
+import org.apache.axiom.fom.AbderaLink;
+import org.apache.axiom.fom.AbderaPerson;
import org.apache.axiom.fom.AbderaSource;
-import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMNode;
@SuppressWarnings( {"unchecked", "deprecation"})
@@ -66,7 +67,7 @@ public class FOMSource extends FOMExtens
}
public <T extends Source> T addAuthor(Person person) {
- addChild((OMElement)person);
+ _addChild((AbderaPerson)person);
return (T)this;
}
@@ -94,7 +95,7 @@ public class FOMSource extends FOMExtens
}
public <T extends Source> T addContributor(Person person) {
- addChild((OMElement)person);
+ _addChild((AbderaPerson)person);
return (T)this;
}
@@ -166,7 +167,7 @@ public class FOMSource extends FOMExtens
}
public <T extends Source> T addLink(Link link) {
- addChild((OMElement)link);
+ _addChild((AbderaLink)link);
return (T)this;
}
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=1706552&r1=1706551&r2=1706552&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
Sat Oct 3 11:39:49 2015
@@ -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.fom.AbderaDiv;
import org.apache.axiom.fom.AbderaText;
import org.apache.axiom.fom.IRIUtil;
import org.apache.axiom.om.OMElement;
@@ -63,7 +64,7 @@ public class FOMText extends FOMElement
_getFirstChildWithName(Constants.DIV).discard();
setTextType(Text.Type.XHTML);
removeChildren();
- addChild((OMElement)value);
+ _addChild((AbderaDiv)value);
} else
_removeAllChildren();
return this;
Modified:
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMWorkspace.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMWorkspace.java?rev=1706552&r1=1706551&r2=1706552&view=diff
==============================================================================
---
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMWorkspace.java
(original)
+++
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMWorkspace.java
Sat Oct 3 11:39:49 2015
@@ -30,6 +30,7 @@ import javax.activation.MimeType;
import org.apache.abdera.model.Collection;
import org.apache.abdera.model.Text;
import org.apache.abdera.model.Workspace;
+import org.apache.axiom.fom.AbderaCollection;
import org.apache.axiom.fom.AbderaWorkspace;
import org.apache.axiom.om.OMElement;
@@ -83,7 +84,7 @@ public class FOMWorkspace extends FOMExt
}
public Workspace addCollection(Collection collection) {
- addChild((OMElement)collection);
+ _addChild((AbderaCollection)collection);
return this;
}