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