You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2006/09/13 17:58:03 UTC

svn commit: r443005 - in /incubator/abdera/java/trunk: core/src/main/java/org/apache/abdera/model/Categories.java parser/src/main/java/org/apache/abdera/parser/stax/FOMCategories.java

Author: jmsnell
Date: Wed Sep 13 08:58:02 2006
New Revision: 443005

URL: http://svn.apache.org/viewvc?view=rev&rev=443005
Log:
>From Draft -10, Section 7.2.1

   If an app:category child element has no "scheme" attribute it
   inherits the attribute from its app:categories parent.  An app:
   category child element with an existing "scheme" attribute does not
   inherit the "scheme" value of its "app:categories" parent element.

Add a getCategoriesWithScheme() method that returns a copy of an app:categories
list of atom:category elements with the scheme attribute properly set.  This creates
a clone of the categories listing so that the original set of atom:category elements 
are not modified.

Modified:
    incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/Categories.java
    incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMCategories.java

Modified: incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/Categories.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/Categories.java?view=diff&rev=443005&r1=443004&r2=443005
==============================================================================
--- incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/Categories.java (original)
+++ incubator/abdera/java/trunk/core/src/main/java/org/apache/abdera/model/Categories.java Wed Sep 13 08:58:02 2006
@@ -65,7 +65,7 @@
   void setScheme(String scheme) throws URISyntaxException;
 
   /**
-   * Lists the complete set of categories listed for the entry
+   * Lists the complete set of categories
    */
   List<Category> getCategories();
   
@@ -76,19 +76,24 @@
   List<Category> getCategories(String scheme) throws URISyntaxException;
   
   /**
-   * Adds an individual category to the entry
+   * Returns a copy of the complete set of categories with the scheme attribute set
+   * as specified in 7.2.1. (child categories that do not have a scheme
+   * attribute inherit the scheme attribute of the parent)
+   * @throws URISyntaxException 
    */
-  void addCategory(Category category);
+  List<Category> getCategoriesWithScheme() throws URISyntaxException;
 
   /**
-   * Adds a category to the feed
+   * Returns a copy of the complete set of categories with the scheme 
+   * attribute set as specified in 7.2.1. (child categories that do not have a 
+   * scheme attribute inherit the scheme attribute of the parent)
    */
+  List<Category> getCategoriesWithScheme(String scheme) throws URISyntaxException;
+  
+  void addCategory(Category category);
+
   Category addCategory(String term);
 
-  /**
-   * Adds a category to the feed
-   * @throws URISyntaxException 
-   */
   Category addCategory(String scheme, String term, String label) throws URISyntaxException;
     
 }

Modified: incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMCategories.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMCategories.java?view=diff&rev=443005&r1=443004&r2=443005
==============================================================================
--- incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMCategories.java (original)
+++ incubator/abdera/java/trunk/parser/src/main/java/org/apache/abdera/parser/stax/FOMCategories.java Wed Sep 13 08:58:02 2006
@@ -19,6 +19,7 @@
 
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.xml.namespace.QName;
@@ -121,6 +122,28 @@
 
   public List<Category> getCategories(String scheme) throws URISyntaxException {
     return FOMHelper.getCategories(this, scheme);
+  }
+  
+  private List<Category> copyCategoriesWithScheme(
+    List<Category> cats) 
+      throws URISyntaxException {
+    List<Category> newcats = new ArrayList<Category>();
+    URI scheme = getScheme();
+    for (Category cat : cats) {
+      Category newcat = (Category) cat.clone();
+      if (newcat.getScheme() == null && scheme != null) 
+        newcat.setScheme(scheme.toString());
+      newcats.add(newcat);
+    }
+    return newcats;
+  }
+  
+  public List<Category> getCategoriesWithScheme() throws URISyntaxException {
+    return copyCategoriesWithScheme(getCategories());
+  }
+  
+  public List<Category> getCategoriesWithScheme(String scheme) throws URISyntaxException {
+    return copyCategoriesWithScheme(getCategories(scheme));
   }
 
   public java.net.URI getScheme() throws URISyntaxException {