fixing comparing rank terms
[cdmlib.git] / cdmlib-remote / src / main / java / eu / etaxonomy / cdm / remote / json / processor / bean / TaxonNodeDaoBeanProcessor.java
index 7585e5a29d4d9fcd4f17634055779e1112d3e437..bdbbda36c26d26c3e122a25b29266668416a4f34 100644 (file)
@@ -12,7 +12,6 @@ package eu.etaxonomy.cdm.remote.json.processor.bean;
 \r
 import java.util.List;\r
 \r
-import net.sf.json.CycleSetAcess;\r
 import net.sf.json.JSONObject;\r
 import net.sf.json.JsonConfig;\r
 import net.sf.json.processors.JsonBeanProcessor;\r
@@ -20,18 +19,19 @@ import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.remote.dto.TaggedText;\r
 \r
 /**\r
- * WARNING! The idea i started implementing here will not work at all!!\r
  * @author a.kohlbecker\r
+ * @date 29.07.2010\r
  *\r
  */\r
-public class TaxonNodeDaoBeanProcessor extends CycleSetAcess implements JsonBeanProcessor {\r
-       \r
-       \r
+public class TaxonNodeDaoBeanProcessor implements JsonBeanProcessor {\r
+\r
+\r
        /* (non-Javadoc)\r
         * @see net.sf.json.processors.JsonBeanProcessor#processBean(java.lang.Object, net.sf.json.JsonConfig)\r
         */\r
+       @Override\r
        public JSONObject processBean(Object bean, JsonConfig jsonConfig) {\r
-       \r
+               \r
                TaxonNode node = (TaxonNode)bean;\r
                JSONObject json = new JSONObject();\r
                json.element("class", "TaxonNodeDao");\r
@@ -39,10 +39,22 @@ public class TaxonNodeDaoBeanProcessor extends CycleSetAcess implements JsonBean
                List<TaggedText> taggedTitle = TaxonNameBaseBeanProcessor.getTaggedName(node.getTaxon().getName());\r
                json.element("taggedTitle", taggedTitle, jsonConfig);\r
                json.element("taxonUuid", node.getTaxon().getUuid(), jsonConfig);\r
-               json.element("secUuid", node.getTaxon().getSec().getUuid(), jsonConfig);\r
+               //Sec can be null (web services can return null for sec)\r
+               //comparation made for avoding view exceptions\r
+               if (node.getTaxon().getSec() == null){\r
+                       json.element("secUuid", "null");\r
+               }else{\r
+                       json.element("secUuid", node.getTaxon().getSec().getUuid(), jsonConfig);\r
+               }       \r
                json.element("taxonomicChildrenCount", node.getCountChildren(), jsonConfig);\r
-               json.element("rankLabel", node.getTaxon().getName().getRank().getLabel(), jsonConfig);\r
-               //json.element("treeUuid", node.getTaxonomicTree().getUuid(), jsonConfig);\r
+               json.element("unplaced", node.getTaxon().isUnplaced());\r
+               json.element("excluded", node.getTaxon().isExcluded());\r
+               String ranklabel = null;\r
+               if(node.getTaxon().getName().getRank() != null){\r
+                       ranklabel = node.getTaxon().getName().getRank().getLabel();\r
+               }\r
+               json.element("rankLabel", ranklabel, jsonConfig);\r
+               //json.element("treeUuid", node.getClassification().getUuid(), jsonConfig);\r
                \r
                return json;\r
        }\r