Author: veithen
Date: Fri Sep 25 19:13:35 2015
New Revision: 1705341
URL: http://svn.apache.org/viewvc?rev=1705341&view=rev
Log:
Eliminate duplicate code.
Added:
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/Categorizable.java
(with props)
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/CategorizableMixin.aj
(with props)
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/FOMList.java
- copied, changed from r1705175,
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/util/FOMList.java
Removed:
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/util/FOMList.java
Modified:
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaCategories.java
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/AbderaEntry.java
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaSource.java
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMCategories.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/FOMSource.java
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/util/FOMHelper.java
Modified:
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaCategories.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaCategories.java?rev=1705341&r1=1705340&r2=1705341&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaCategories.java
(original)
+++
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaCategories.java
Fri Sep 25 19:13:35 2015
@@ -20,6 +20,6 @@ package org.apache.axiom.fom;
import org.apache.abdera.model.Categories;
-public interface AbderaCategories extends Categories, AbderaExtensibleElement,
HrefAttributeSupport {
+public interface AbderaCategories extends Categories, AbderaExtensibleElement,
HrefAttributeSupport, Categorizable {
}
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=1705341&r1=1705340&r2=1705341&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
Fri Sep 25 19:13:35 2015
@@ -18,9 +18,13 @@
*/
package org.apache.axiom.fom;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
import org.apache.abdera.model.Element;
import org.apache.axiom.core.CoreNSAwareElement;
public interface AbderaElement extends Element, AbderaChildNode,
CoreNSAwareElement {
-
+ <E extends Element> List<E> _getChildrenAsSet(QName qname);
}
Modified:
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaEntry.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaEntry.java?rev=1705341&r1=1705340&r2=1705341&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaEntry.java
(original)
+++
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaEntry.java
Fri Sep 25 19:13:35 2015
@@ -20,6 +20,6 @@ package org.apache.axiom.fom;
import org.apache.abdera.model.Entry;
-public interface AbderaEntry extends Entry, AbderaExtensibleElement {
+public interface AbderaEntry extends Entry, AbderaExtensibleElement,
Categorizable {
}
Modified:
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaSource.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaSource.java?rev=1705341&r1=1705340&r2=1705341&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaSource.java
(original)
+++
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/AbderaSource.java
Fri Sep 25 19:13:35 2015
@@ -20,6 +20,6 @@ package org.apache.axiom.fom;
import org.apache.abdera.model.Source;
-public interface AbderaSource extends Source, AbderaExtensibleElement {
+public interface AbderaSource extends Source, AbderaExtensibleElement,
Categorizable {
}
Added:
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/Categorizable.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/Categorizable.java?rev=1705341&view=auto
==============================================================================
---
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/Categorizable.java
(added)
+++
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/Categorizable.java
Fri Sep 25 19:13:35 2015
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axiom.fom;
+
+public interface Categorizable extends AbderaElement {
+
+}
Propchange:
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/Categorizable.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
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=1705341&view=auto
==============================================================================
---
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/CategorizableMixin.aj
(added)
+++
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/CategorizableMixin.aj
Fri Sep 25 19:13:35 2015
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axiom.fom;
+
+import java.util.List;
+
+import org.apache.abdera.model.Category;
+import org.apache.abdera.util.Constants;
+import org.apache.axiom.core.Axis;
+import org.apache.axiom.core.ElementMatcher;
+
+// TODO: also handle addCategory(Category) here
+public aspect CategorizableMixin {
+ private static final ElementMatcher<AbderaCategory> CATEGORY_BY_SCHEME =
new ElementMatcher<AbderaCategory>() {
+ public boolean matches(AbderaCategory element, String namespaceURI,
String name) {
+ String scheme = element.getAttributeValue(Constants.SCHEME);
+ return scheme != null && scheme.equals(name);
+ }
+ };
+
+ public final Category Categorizable.addCategory(String term) {
+ Category category = getFactory().newCategory(this);
+ category.setTerm(term);
+ return category;
+ }
+
+ public final Category Categorizable.addCategory(String scheme, String
term, String label) {
+ Category category = getFactory().newCategory(this);
+ category.setTerm(term);
+ category.setScheme(scheme);
+ category.setLabel(label);
+ return category;
+ }
+
+ public final List<Category> Categorizable.getCategories() {
+ return _getChildrenAsSet(Constants.CATEGORY);
+ }
+
+ public final List<Category> Categorizable.getCategories(String scheme) {
+ // TODO: we should probably set detachPolicy to null
+ return new FOMList<Category>(coreGetElements(
+ Axis.CHILDREN, AbderaCategory.class, CATEGORY_BY_SCHEME, null,
scheme,
+ FOMExceptionTranslator.INSTANCE, Policies.DETACH_POLICY));
+ }
+}
Propchange:
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/CategorizableMixin.aj
------------------------------------------------------------------------------
svn:eol-style = native
Copied:
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/FOMList.java
(from r1705175,
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/util/FOMList.java)
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/FOMList.java?p2=webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/FOMList.java&p1=webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/util/FOMList.java&r1=1705175&r2=1705341&rev=1705341&view=diff
==============================================================================
---
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/util/FOMList.java
(original)
+++
webservices/axiom/trunk/aspects/fom-aspects/src/main/java/org/apache/axiom/fom/FOMList.java
Fri Sep 25 19:13:35 2015
@@ -15,7 +15,7 @@
* copyright in this work, please see the NOTICE file in the top level
* directory of this distribution.
*/
-package org.apache.abdera.parser.stax.util;
+package org.apache.axiom.fom;
import java.util.ArrayList;
import java.util.Collection;
Modified:
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMCategories.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMCategories.java?rev=1705341&r1=1705340&r2=1705341&view=diff
==============================================================================
---
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMCategories.java
(original)
+++
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMCategories.java
Fri Sep 25 19:13:35 2015
@@ -23,7 +23,6 @@ import java.util.List;
import org.apache.abdera.i18n.iri.IRI;
import org.apache.abdera.model.Categories;
import org.apache.abdera.model.Category;
-import org.apache.abdera.parser.stax.util.FOMHelper;
import org.apache.axiom.fom.AbderaCategories;
import org.apache.axiom.fom.IRIUtil;
import org.apache.axiom.om.OMElement;
@@ -34,29 +33,6 @@ public class FOMCategories extends FOMEx
return this;
}
- public Category addCategory(String term) {
- Category category = getFactory().newCategory(this);
- category.setTerm(term);
- return category;
- }
-
- public Category addCategory(String scheme, String term, String label) {
- Category category = getFactory().newCategory(this);
- category.setTerm(term);
- category.setScheme(scheme);
- category.setLabel(label);
- return category;
-
- }
-
- public List<Category> getCategories() {
- return _getChildrenAsSet(CATEGORY);
- }
-
- public List<Category> getCategories(String scheme) {
- return FOMHelper.getCategories(this, scheme);
- }
-
private List<Category> copyCategoriesWithScheme(List<Category> cats) {
List<Category> newcats = new ArrayList<Category>();
IRI scheme = getScheme();
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=1705341&r1=1705340&r2=1705341&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 Sep 25 19:13:35 2015
@@ -52,7 +52,6 @@ import org.apache.abdera.parser.ParseExc
import org.apache.abdera.parser.Parser;
import org.apache.abdera.parser.ParserOptions;
import org.apache.abdera.parser.stax.util.FOMElementIteratorWrapper;
-import org.apache.abdera.parser.stax.util.FOMList;
import org.apache.abdera.util.Constants;
import org.apache.abdera.util.MimeTypeHelper;
import org.apache.abdera.writer.Writer;
@@ -60,6 +59,7 @@ import org.apache.abdera.writer.WriterOp
import org.apache.axiom.core.CoreChildNode;
import org.apache.axiom.core.CoreNSAwareElement;
import org.apache.axiom.fom.AbderaElement;
+import org.apache.axiom.fom.FOMList;
import org.apache.axiom.fom.IRIUtil;
import org.apache.axiom.fom.Policies;
import org.apache.axiom.om.OMAttribute;
@@ -217,7 +217,7 @@ public class FOMElement extends FOMChild
return (T)this;
}
- protected <E extends Element> List<E> _getChildrenAsSet(QName qname) {
+ public <E extends Element> List<E> _getChildrenAsSet(QName qname) {
FOMFactory factory = (FOMFactory)getFactory();
return new FOMList(new FOMElementIteratorWrapper(factory,
getChildrenWithName(qname)));
}
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=1705341&r1=1705340&r2=1705341&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
Fri Sep 25 19:13:35 2015
@@ -80,14 +80,6 @@ public class FOMEntry extends FOMExtensi
return person;
}
- public List<Category> getCategories() {
- return _getChildrenAsSet(CATEGORY);
- }
-
- public List<Category> getCategories(String scheme) {
- return FOMHelper.getCategories(this, scheme);
- }
-
public Entry addCategory(Category category) {
Element el = category.getParentElement();
if (el != null && el instanceof Categories) {
@@ -104,20 +96,6 @@ public class FOMEntry extends FOMExtensi
return this;
}
- public Category addCategory(String term) {
- Category category = getFactory().newCategory(this);
- category.setTerm(term);
- return category;
- }
-
- public Category addCategory(String scheme, String term, String label) {
- Category category = getFactory().newCategory(this);
- category.setTerm(term);
- category.setScheme(scheme);
- category.setLabel(label);
- return category;
- }
-
public Content getContentElement() {
return (Content)getFirstChildWithName(CONTENT);
}
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=1705341&r1=1705340&r2=1705341&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
Fri Sep 25 19:13:35 2015
@@ -26,8 +26,8 @@ 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.abdera.parser.stax.util.FOMList;
import org.apache.axiom.fom.AbderaExtensibleElement;
+import org.apache.axiom.fom.FOMList;
import org.apache.axiom.om.OMElement;
@SuppressWarnings("unchecked")
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=1705341&r1=1705340&r2=1705341&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
Fri Sep 25 19:13:35 2015
@@ -71,14 +71,6 @@ public class FOMSource extends FOMExtens
return person;
}
- public List<Category> getCategories() {
- return _getChildrenAsSet(CATEGORY);
- }
-
- public List<Category> getCategories(String scheme) {
- return FOMHelper.getCategories(this, scheme);
- }
-
public <T extends Source> T addCategory(Category category) {
Element el = category.getParentElement();
if (el != null && el instanceof Categories) {
@@ -95,20 +87,6 @@ public class FOMSource extends FOMExtens
return (T)this;
}
- public Category addCategory(String term) {
- Category category = getFactory().newCategory(this);
- category.setTerm(term);
- return category;
- }
-
- public Category addCategory(String scheme, String term, String label) {
- Category category = getFactory().newCategory(this);
- category.setTerm(term);
- category.setScheme(scheme);
- category.setLabel(label);
- return category;
- }
-
public List<Person> getContributors() {
return _getChildrenAsSet(CONTRIBUTOR);
}
Modified:
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/util/FOMHelper.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/util/FOMHelper.java?rev=1705341&r1=1705340&r2=1705341&view=diff
==============================================================================
---
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/util/FOMHelper.java
(original)
+++
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/util/FOMHelper.java
Fri Sep 25 19:13:35 2015
@@ -21,34 +21,14 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import org.apache.abdera.model.Category;
import org.apache.abdera.model.Element;
import org.apache.abdera.model.Link;
import org.apache.abdera.util.Constants;
-import org.apache.axiom.core.Axis;
-import org.apache.axiom.core.ElementMatcher;
-import org.apache.axiom.fom.AbderaCategory;
-import org.apache.axiom.fom.AbderaElement;
-import org.apache.axiom.fom.FOMExceptionTranslator;
-import org.apache.axiom.fom.Policies;
+import org.apache.axiom.fom.FOMList;
import org.apache.axiom.util.UIDGenerator;
@SuppressWarnings("unchecked")
public class FOMHelper implements Constants {
- private static final ElementMatcher<AbderaCategory> CATEGORY_BY_SCHEME =
new ElementMatcher<AbderaCategory>() {
- public boolean matches(AbderaCategory element, String namespaceURI,
String name) {
- String scheme = element.getAttributeValue(SCHEME);
- return scheme != null && scheme.equals(name);
- }
- };
-
- public static List<Category> getCategories(AbderaElement element, String
scheme) {
- // TODO: we should probably set detachPolicy to null
- return new FOMList<Category>(element.coreGetElements(
- Axis.CHILDREN, AbderaCategory.class, CATEGORY_BY_SCHEME, null,
scheme,
- FOMExceptionTranslator.INSTANCE, Policies.DETACH_POLICY));
- }
-
public static List<Link> getLinks(Element element, String rel) {
Iterator i = new FOMLinkIterator(element, Link.class, REL, rel,
Link.REL_ALTERNATE);
return new FOMList<Link>(i);