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


Reply via email to