You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by ma...@apache.org on 2013/03/28 03:31:33 UTC

svn commit: r1461933 - in /oodt/trunk: CHANGES.txt filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlStructFactory.java

Author: mattmann
Date: Thu Mar 28 02:31:33 2013
New Revision: 1461933

URL: http://svn.apache.org/r1461933
Log:
- fix for OODT-560 XmlStructFactory::getProductTypeMapXmlDocument does not output virtual product types contributed by Varun Ratnakar

Modified:
    oodt/trunk/CHANGES.txt
    oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlStructFactory.java

Modified: oodt/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/oodt/trunk/CHANGES.txt?rev=1461933&r1=1461932&r2=1461933&view=diff
==============================================================================
--- oodt/trunk/CHANGES.txt (original)
+++ oodt/trunk/CHANGES.txt Thu Mar 28 02:31:33 2013
@@ -3,6 +3,9 @@ Apache OODT Change Log
 Release 0.6 - Current Development
 --------------------------------------------
 
+* OODT-560 XmlStructFactory::getProductTypeMapXmlDocument does not 
+  output virtual product types (Varun Ratnakar via mattmann)
+
 * OODT-583 Added JUnit test class for RSSConfigReader (rlaidlaw)
 
 * OODT-582 Fix for oodt.cas.product.rss.RSSConfigReader.readTags() for detection

Modified: oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlStructFactory.java
URL: http://svn.apache.org/viewvc/oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlStructFactory.java?rev=1461933&r1=1461932&r2=1461933&view=diff
==============================================================================
--- oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlStructFactory.java (original)
+++ oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlStructFactory.java Thu Mar 28 02:31:33 2013
@@ -18,6 +18,7 @@
 package org.apache.oodt.cas.filemgr.util;
 
 //JDK imports
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Iterator;
@@ -239,25 +240,39 @@ public final class XmlStructFactory {
             root.setAttribute("xmlns:cas", "http://oodt.jpl.nasa.gov/1.0/cas");
             document.appendChild(root);
 
-            for (Iterator<String> i = productTypeMap.keySet().iterator(); i.hasNext();) {
+            // Also print types without elements but just with parents
+            ArrayList<String> allTypes = new ArrayList<String>(productTypeMap.keySet());
+            for(String type: subToSuperMap.keySet()) {
+                if(!allTypes.contains(type))
+                    allTypes.add(type);
+            }
+            
+            for (Iterator<String> i = allTypes.iterator(); i.hasNext();) {
                 String typeId = i.next();
 
                 Element typeElem = document.createElement("type");
                 typeElem.setAttribute("id", typeId);
 
+                boolean hasParent = false;
                 if (subToSuperMap.containsKey(typeId)) {
                     typeElem.setAttribute("parent", subToSuperMap
                             .get(typeId));
+                    hasParent = true;
                 }
 
                 List<org.apache.oodt.cas.filemgr.structs.Element> elementIds = productTypeMap.get(typeId);
-
-                for (Iterator<org.apache.oodt.cas.filemgr.structs.Element> j = elementIds.iterator(); j.hasNext();) {
-                    String elementId = j.next().getElementId();
-
-                    Element elementElem = document.createElement("element");
-                    elementElem.setAttribute("id", elementId);
-                    typeElem.appendChild(elementElem);
+                if(!hasParent && (elementIds == null || elementIds.size() == 0)) {
+                    // If no parent, and no elements, don't add this type to the xml
+                    continue;
+                }
+                if(elementIds != null) {
+                    for (Iterator<org.apache.oodt.cas.filemgr.structs.Element> j = elementIds.iterator(); j.hasNext();) {
+                        String elementId = j.next().getElementId();
+
+                        Element elementElem = document.createElement("element");
+                        elementElem.setAttribute("id", elementId);
+                        typeElem.appendChild(elementElem);
+                    }
                 }
 
                 root.appendChild(typeElem);