futher implementations and fixes regarding DerivedUnitFacadeController
authorAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Fri, 9 Jul 2010 14:00:16 +0000 (14:00 +0000)
committerAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Fri, 9 Jul 2010 14:00:16 +0000 (14:00 +0000)
.gitattributes
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/name/TypeDesignationBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/occurrence/SpecimenOrObservationBase.java
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/NameController.java
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonPortalController.java
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/json/processor/bean/TypeDesignationBaseBeanProcessor.java [new file with mode: 0644]
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/json/processor/matcher/CdmProxyBeanProcessorMatcher.java
cdmlib-remote/src/main/webapp/WEB-INF/jsonConfigurations.xml

index 55e60e983417900ffc364ea71a73692b441eeb82..c648b63554465e76be579109e6ed3dff1e7a89e5 100644 (file)
@@ -2604,6 +2604,7 @@ cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/json/processor/bean/TaxonRel
 cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/json/processor/bean/TaxonomyNodeBeanProcessor.java -text
 cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/json/processor/bean/TermBaseBeanProcessor.java -text
 cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/json/processor/bean/TextDataBeanProcessor.java -text
+cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/json/processor/bean/TypeDesignationBaseBeanProcessor.java -text
 cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/json/processor/matcher/CGLibEnhancedBeanProcessorMatcher.java -text
 cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/json/processor/matcher/CdmProxyBeanProcessorMatcher.java -text
 cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/json/processor/matcher/HibernateJSONValueProcessorMatcher.java -text
index dfe7386689ed2314821df092e21a226f53635478..e577866ab2a635480165b2082794476fe07541de 100644 (file)
@@ -63,6 +63,9 @@ import eu.etaxonomy.cdm.model.reference.ReferenceBase;
 @Audited\r
 @Inheritance(strategy=InheritanceType.SINGLE_TABLE)\r
 public abstract class TypeDesignationBase<T extends TypeDesignationStatusBase> extends ReferencedEntityBase implements ITypeDesignation {\r
+\r
+       private static final long serialVersionUID = 1L;\r
+\r
        @SuppressWarnings("unused")\r
        private static final Logger logger = Logger.getLogger(TypeDesignationBase.class);\r
 \r
index f4173d943e3d3df1eb689851ffae4cc6c11bdb93..572e5e50881b7086d4564b15b3ab62fc3aedcab7 100644 (file)
@@ -159,6 +159,7 @@ public abstract class SpecimenOrObservationBase<S extends IIdentifiableEntityCac
         * @see #getDescriptions()
         * @return
         */
+       @Transient
        public Set<SpecimenDescription> getSpecimenDescriptions() {
                return getSpecimenDescriptions(true);
        }
index 7da79db00cd05d63b348e73713147ba9d0d3140a..75e1fb0b109d23a9f878a9a7f1735a62665b641a 100644 (file)
@@ -50,9 +50,10 @@ public class NameController extends AnnotatableController<TaxonNameBase, INameSe
 {\r
        \r
        private static final List<String> TYPEDESIGNATION_INIT_STRATEGY = Arrays.asList(new String []{\r
-                       "$",\r
-                       "citation.authorTeam",\r
-                       "typifiedNames.taggedName"\r
+                       "typeStatus.representations",\r
+                       "typifiedNames.titleCache",\r
+                       "typeSpecimen.titleCache",\r
+                       \r
        });\r
        \r
        private static final List<String> NAME_CACHE_INIT_STRATEGY = Arrays.asList(new String []{\r
@@ -94,7 +95,7 @@ public class NameController extends AnnotatableController<TaxonNameBase, INameSe
        @RequestMapping(\r
                        value = {"*/typeDesignations"},\r
                        method = RequestMethod.GET)\r
-       public List<TypeDesignationBase> doGetNameDesignations(HttpServletRequest request, HttpServletResponse response)throws IOException {\r
+       public List<TypeDesignationBase> doGetNameTypeDesignations(HttpServletRequest request, HttpServletResponse response)throws IOException {\r
                TaxonNameBase tnb = getCdmBase(request, response, null, TaxonNameBase.class);\r
                Pager<TypeDesignationBase> p = service.getTypeDesignations(tnb, null, null, null, TYPEDESIGNATION_INIT_STRATEGY);\r
                return p.getRecords();\r
index d0d6480122e84b1ed9d4744443eb502e458561b0..943f6820b077d14a548c860b508ae89b1ff5d58b 100644 (file)
@@ -560,7 +560,9 @@ public class TaxonPortalController extends BaseController<TaxonBase, ITaxonServi
         *         using the following initialization strategy:\r
         *         {@link #TYPEDESIGNATION_INIT_STRATEGY}\r
         * @throws IOException\r
+        * @Deprecated use &#x002F;name&#x002F;{uuid}&#x002F;typeDesignations & &#x002F;derivedunitfacade&#x002F;{uuid} instead\r
         */\r
+       @Deprecated\r
        @RequestMapping(\r
                        value = {"/portal/taxon/*/nameTypeDesignations"},\r
                        method = RequestMethod.GET)\r
diff --git a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/json/processor/bean/TypeDesignationBaseBeanProcessor.java b/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/json/processor/bean/TypeDesignationBaseBeanProcessor.java
new file mode 100644 (file)
index 0000000..f854522
--- /dev/null
@@ -0,0 +1,49 @@
+// $Id$\r
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+package eu.etaxonomy.cdm.remote.json.processor.bean;\r
+\r
+import java.util.List;\r
+\r
+import net.sf.json.JSONObject;\r
+import net.sf.json.JsonConfig;\r
+import eu.etaxonomy.cdm.model.name.NameTypeDesignation;\r
+import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;\r
+import eu.etaxonomy.cdm.model.name.TypeDesignationBase;\r
+\r
+/**\r
+ * @author a.kohlbecker\r
+ * @date 09.07.2010\r
+ *\r
+ */\r
+public class TypeDesignationBaseBeanProcessor extends AbstractCdmBeanProcessor<TypeDesignationBase> {\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.remote.json.processor.bean.AbstractCdmBeanProcessor#getIgnorePropNames()\r
+        */\r
+       @Override\r
+       public List<String> getIgnorePropNames() {\r
+               return null;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.remote.json.processor.bean.AbstractCdmBeanProcessor#processBeanSecondStep(eu.etaxonomy.cdm.model.common.CdmBase, net.sf.json.JSONObject, net.sf.json.JsonConfig)\r
+        */\r
+       @Override\r
+       public JSONObject processBeanSecondStep(TypeDesignationBase bean, JSONObject json, JsonConfig jsonConfig) {\r
+               json.element("typeStatus", bean.getTypeStatus(), jsonConfig);\r
+               if(bean.getClass().isAssignableFrom(SpecimenTypeDesignation.class)){\r
+                       json.element("typeSpecimen", ((SpecimenTypeDesignation)bean).getTypeSpecimen(), jsonConfig);\r
+               } else if (bean.getClass().isAssignableFrom(NameTypeDesignation.class)){\r
+                       json.element("typeName", ((NameTypeDesignation)bean).getTypeName(), jsonConfig);\r
+               }\r
+               return json;\r
+       }\r
+\r
+}\r
index 716a88ddaa57795f184745fcc72d690fa40d4e1c..eba316276bb7102414da507e6362c4b3ca83f14d 100644 (file)
@@ -23,6 +23,7 @@ import eu.etaxonomy.cdm.model.description.TextData;
 import eu.etaxonomy.cdm.model.media.Media;\r
 import eu.etaxonomy.cdm.model.name.NameRelationship;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.name.TypeDesignationBase;\r
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
@@ -60,18 +61,21 @@ public class CdmProxyBeanProcessorMatcher extends JsonBeanProcessorMatcher {
                if (TermBase.class.isAssignableFrom(target)) {\r
                        return DEFAULT.getMatch(TermBase.class, set);\r
                }\r
-               if (NameRelationship.class.isAssignableFrom(target)) {\r
-                       return DEFAULT.getMatch(NameRelationship.class, set);\r
-               }\r
-               if (TaxonRelationship.class.isAssignableFrom(target)) {\r
-                       return DEFAULT.getMatch(TaxonRelationship.class, set);\r
-               }\r
+//             if (NameRelationship.class.isAssignableFrom(target)) {\r
+//                     return DEFAULT.getMatch(NameRelationship.class, set);\r
+//             }\r
+//             if (TaxonRelationship.class.isAssignableFrom(target)) {\r
+//                     return DEFAULT.getMatch(TaxonRelationship.class, set);\r
+//             }\r
                if (Media.class.isAssignableFrom(target)) {\r
                        return DEFAULT.getMatch(Media.class, set);\r
                }\r
                if (ReferenceBase.class.isAssignableFrom(target)) {\r
                        return DEFAULT.getMatch(ReferenceBase.class, set);\r
                }\r
+               if (TypeDesignationBase.class.isAssignableFrom(target)) {\r
+                       return DEFAULT.getMatch(TypeDesignationBase.class, set);\r
+               }\r
 \r
                return DEFAULT.getMatch(target, set);\r
        }\r
index a51317b5dbf0598bed16cfb20bc9907d6d5801d0..ab38304273f274d2568d294cda8072ac22f22117 100644 (file)
                                class="eu.etaxonomy.cdm.remote.json.processor.matcher.CdmProxyBeanProcessorMatcher" />\r
                </property>\r
                <property name="jsonBeanProcessors">\r
-                       <map>\r
-                               <entry key="org.hibernate.proxy.HibernateProxy">\r
-                                       <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />\r
-                               </entry>\r
-                               <entry key="eu.etaxonomy.cdm.model.common.TermBase">\r
-                                       <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TermBaseBeanProcessor">\r
-                                          <property name="excludes">\r
-                            <set value-type="java.lang.String">\r
-                                <value>partOf</value><!-- FIXME exclude partOf to avoid  lazy loading exceptions  -->\r
-                                <value>kindOf</value><!-- FIXME exclude kindOf to avoid  lazy loading exceptions  -->\r
-                                <value>infraGenericMarker</value><!-- FIXME leads to IllegalStateException if not excluded  -->\r
-                            </set>\r
-                        </property>\r
-                                       </bean>\r
-                               </entry>\r
-                               <entry key="eu.etaxonomy.cdm.model.description.TextData">\r
-                                       <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TextDataBeanProcessor" />\r
-                               </entry>\r
-                               <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNode">\r
-                                       <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeBeanProcessor" />\r
-                               </entry>\r
-                         <entry key="eu.etaxonomy.cdm.model.reference.ReferenceBase">\r
-          <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>\r
-        </entry>\r
-                       </map>\r
+                 <map>\r
+                       <entry key="org.hibernate.proxy.HibernateProxy">\r
+                               <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.HibernateProxyBeanProcessor" />\r
+                       </entry>\r
+                       <entry key="eu.etaxonomy.cdm.model.common.TermBase">\r
+                               <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TermBaseBeanProcessor">\r
+                                  <property name="excludes">\r
+                           <set value-type="java.lang.String">\r
+                               <value>partOf</value><!-- FIXME exclude partOf to avoid  lazy loading exceptions  -->\r
+                               <value>kindOf</value><!-- FIXME exclude kindOf to avoid  lazy loading exceptions  -->\r
+                               <value>infraGenericMarker</value><!-- FIXME leads to IllegalStateException if not excluded  -->\r
+                           </set>\r
+                       </property>\r
+                               </bean>\r
+                       </entry>\r
+                       <entry key="eu.etaxonomy.cdm.model.description.TextData">\r
+                               <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TextDataBeanProcessor" />\r
+                       </entry>\r
+                       <entry key="eu.etaxonomy.cdm.model.taxon.TaxonNode">\r
+                               <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TaxonNodeBeanProcessor" />\r
+                       </entry>\r
+                   <entry key="eu.etaxonomy.cdm.model.reference.ReferenceBase">\r
+                 <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.ReferenceBaseBeanProcessor"/>\r
+               </entry>\r
+               <entry key="eu.etaxonomy.cdm.model.name.TypeDesignationBase">\r
+              <bean class="eu.etaxonomy.cdm.remote.json.processor.bean.TypeDesignationBaseBeanProcessor"/>\r
+            </entry>\r
+                 </map>\r
                </property>\r
                <property name="jsonPropertyFilter">\r
             <bean class="net.sf.json.filters.OrPropertyFilter">\r