Updated to remove calls to getRelatedFrom / getRelatedTo .
authorCherian Mathew <c.mathew@bgbm.org>
Fri, 31 Aug 2012 12:03:48 +0000 (12:03 +0000)
committerCherian Mathew <c.mathew@bgbm.org>
Fri, 31 Aug 2012 12:03:48 +0000 (12:03 +0000)
Other indirect, transient methods in NameRelationship, TaxonRelationship and SynonymRelationship have been used.

cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/NameCatalogueController.java
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/namecatalogue/NameInformation.java

index 084ece0cfb9e0a001f54b6a32ddd1344578f192f..3b6565d48e797e435553dc769a932d4e9239232d 100755 (executable)
@@ -43,6 +43,7 @@ import eu.etaxonomy.cdm.remote.dto.namecatalogue.NameInformation;
 import eu.etaxonomy.cdm.remote.dto.namecatalogue.NameSearch;\r
 import eu.etaxonomy.cdm.remote.dto.namecatalogue.TaxonInformation;\r
 import eu.etaxonomy.cdm.remote.view.HtmlView;\r
 import eu.etaxonomy.cdm.remote.dto.namecatalogue.NameSearch;\r
 import eu.etaxonomy.cdm.remote.dto.namecatalogue.TaxonInformation;\r
 import eu.etaxonomy.cdm.remote.view.HtmlView;\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
 import eu.etaxonomy.cdm.model.common.Language;\r
 import eu.etaxonomy.cdm.model.name.NonViralName;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.model.common.Language;\r
 import eu.etaxonomy.cdm.model.name.NonViralName;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
@@ -112,7 +113,7 @@ public class NameCatalogueController extends BaseController<TaxonNameBase, IName
             "exBasionymAuthorTeam.$",\r
             "nameCache",\r
             "taxonBases",\r
             "exBasionymAuthorTeam.$",\r
             "nameCache",\r
             "taxonBases",\r
-    "taxonBases.synonymRelations.type.$"});\r
+            "taxonBases.synonymRelations.type.$"});\r
 \r
     /** Hibernate name information initialisation strategy */\r
     private static final List<String> NAME_INFORMATION_INIT_STRATEGY = Arrays.asList(new String[] {\r
 \r
     /** Hibernate name information initialisation strategy */\r
     private static final List<String> NAME_INFORMATION_INIT_STRATEGY = Arrays.asList(new String[] {\r
@@ -123,14 +124,23 @@ public class NameCatalogueController extends BaseController<TaxonNameBase, IName
             "exCombinationAuthorTeam.$",\r
             "basionymAuthorTeam.$",\r
             "exBasionymAuthorTeam.$",\r
             "exCombinationAuthorTeam.$",\r
             "basionymAuthorTeam.$",\r
             "exBasionymAuthorTeam.$",\r
-            "relationsToThisName.$",\r
-            "relationsFromThisName.$" });\r
+            "relationsToThisName.fromName.$",\r
+            "relationsToThisName.nomenclaturalReference.$",\r
+            "relationsToThisName.type.$",\r
+            "relationsFromThisName.toName.$",\r
+            "relationsFromThisName.nomenclaturalReference.$",\r
+            "relationsFromThisName.type.$"});\r
 \r
     /** Hibernate taxon information initialisation strategy */\r
     private static final List<String> TAXON_INFORMATION_INIT_STRATEGY = Arrays.asList(new String[] {\r
 \r
     /** Hibernate taxon information initialisation strategy */\r
     private static final List<String> TAXON_INFORMATION_INIT_STRATEGY = Arrays.asList(new String[] {\r
+            "name.titleCache",\r
             "name.rank.titleCache",\r
             "synonymRelations.synonym.name.rank.titleCache",\r
             "name.rank.titleCache",\r
             "synonymRelations.synonym.name.rank.titleCache",\r
+            "synonymRelations.acceptedTaxon.name.rank.titleCache",\r
             "synonymRelations.type.$",\r
             "synonymRelations.type.$",\r
+            "taxonRelations.toTaxon.$",\r
+            "taxonRelations.fromTaxon.$",\r
+            "taxonRelations.type.$",            \r
             "synonymRelations.relatedTo.name.rank.titleCache",\r
             "relationsFromThisTaxon.type.$",\r
             "relationsFromThisTaxon.relatedTo.name.rank.titleCache",\r
             "synonymRelations.relatedTo.name.rank.titleCache",\r
             "relationsFromThisTaxon.type.$",\r
             "relationsFromThisTaxon.relatedTo.name.rank.titleCache",\r
@@ -530,9 +540,9 @@ public class NameCatalogueController extends BaseController<TaxonNameBase, IName
                     // build classification map\r
                     Map classificationMap = getClassification(taxon, classificationType);\r
 \r
                     // build classification map\r
                     Map classificationMap = getClassification(taxon, classificationType);\r
 \r
-
+                    logger.info("taxon uuid " + taxon.getUuid().toString() + " original hash code : " + System.identityHashCode(taxon) + ", name class " + taxon.getName().getClass().getName());
                     // update taxon information object with taxon related data\r
                     // update taxon information object with taxon related data\r
-                    NonViralName nvn = (NonViralName) tb.getName();\r
+                    NonViralName nvn = (NonViralName) taxon.getName();\r
                     ti.setResponseTaxon(tb.getTitleCache(),\r
                             nvn.getTitleCache(),\r
                             nvn.getRank().getTitleCache(),\r
                     ti.setResponseTaxon(tb.getTitleCache(),\r
                             nvn.getTitleCache(),\r
                             nvn.getRank().getTitleCache(),\r
@@ -559,12 +569,12 @@ public class NameCatalogueController extends BaseController<TaxonNameBase, IName
                     // build relationship information as,\r
                     // - relationships from the requested taxon\r
                     Set<TaxonRelationship> trFromSet = taxon.getRelationsFromThisTaxon();\r
                     // build relationship information as,\r
                     // - relationships from the requested taxon\r
                     Set<TaxonRelationship> trFromSet = taxon.getRelationsFromThisTaxon();\r
-                    for (TaxonRelationship tr : trFromSet) {\r
-                        String titleTo = tr.getRelatedTo().getTitleCache();\r
-                        NonViralName tonvn = (NonViralName) tr.getRelatedTo().getName();\r
+                    for (TaxonRelationship tr : trFromSet) {                        \r
+                        String titleTo = tr.getToTaxon().getTitleCache();\r
+                        NonViralName tonvn = (NonViralName) tr.getToTaxon().getName();\r
                         String name = tonvn.getTitleCache();\r
                         String rank = tonvn.getRank().getTitleCache();\r
                         String name = tonvn.getTitleCache();\r
                         String rank = tonvn.getRank().getTitleCache();\r
-                        String uuid = tr.getRelatedTo().getUuid().toString();\r
+                        String uuid = tr.getToTaxon().getUuid().toString();\r
                         String status = ACCEPTED_NAME_STATUS;\r
                         String relLabel = tr.getType().getRepresentation(Language.DEFAULT())\r
                                 .getLabel();\r
                         String status = ACCEPTED_NAME_STATUS;\r
                         String relLabel = tr.getType().getRepresentation(Language.DEFAULT())\r
                                 .getLabel();\r
@@ -574,11 +584,11 @@ public class NameCatalogueController extends BaseController<TaxonNameBase, IName
                     // - relationships from the requested taxon\r
                     Set<TaxonRelationship> trToSet = taxon.getRelationsToThisTaxon();\r
                     for (TaxonRelationship tr : trToSet) {\r
                     // - relationships from the requested taxon\r
                     Set<TaxonRelationship> trToSet = taxon.getRelationsToThisTaxon();\r
                     for (TaxonRelationship tr : trToSet) {\r
-                        String titleFrom = tr.getRelatedFrom().getTitleCache();\r
-                        NonViralName fromnvn = (NonViralName) tr.getRelatedTo().getName();\r
+                        String titleFrom = tr.getFromTaxon().getTitleCache();\r
+                        NonViralName fromnvn = (NonViralName) tr.getToTaxon().getName();\r
                         String name = fromnvn.getTitleCache();\r
                         String rank = fromnvn.getRank().getTitleCache();\r
                         String name = fromnvn.getTitleCache();\r
                         String rank = fromnvn.getRank().getTitleCache();\r
-                        String uuid = tr.getRelatedFrom().getUuid().toString();\r
+                        String uuid = tr.getFromTaxon().getUuid().toString();\r
                         String status = ACCEPTED_NAME_STATUS;\r
                         String relLabel = tr.getType()\r
                                 .getInverseRepresentation(Language.DEFAULT())\r
                         String status = ACCEPTED_NAME_STATUS;\r
                         String relLabel = tr.getType()\r
                                 .getInverseRepresentation(Language.DEFAULT())\r
@@ -598,12 +608,15 @@ public class NameCatalogueController extends BaseController<TaxonNameBase, IName
                     // add accepted taxa (if exists) to taxon information object\r
 \r
                     //FIXME commenting out below line in order to allow fixing the bug #3064 (portal synonymy service produces massive response for Crepis tectorum)\r
                     // add accepted taxa (if exists) to taxon information object\r
 \r
                     //FIXME commenting out below line in order to allow fixing the bug #3064 (portal synonymy service produces massive response for Crepis tectorum)\r
-/*                    Set<SynonymRelationship> synRelationships = synonym.getSynonymRelations();\r
+                    Set<SynonymRelationship> synRelationships = synonym.getSynonymRelations();\r
                     for (SynonymRelationship sr : synRelationships) {\r
                     for (SynonymRelationship sr : synRelationships) {\r
-                        Taxon accTaxon = sr.getRelatedTo();\r
+                        Taxon accTaxon = sr.getAcceptedTaxon();                        \r
                         String uuid = accTaxon.getUuid().toString();\r
                         String uuid = accTaxon.getUuid().toString();\r
+                        logger.info("acc taxon uuid " + accTaxon.getUuid().toString() + " original hash code : " + System.identityHashCode(accTaxon) + ", name class " + accTaxon.getName().getClass().getName());\r
                         String title = accTaxon.getTitleCache();\r
                         String title = accTaxon.getTitleCache();\r
-                        NonViralName accnvn = (NonViralName) accTaxon.getName();\r
+                        logger.info("taxon title cache : " + accTaxon.getTitleCache());\r
+                        //NonViralName accnvn = CdmBase.deproxy(accTaxon.getName(), NonViralName.class);                        \r
+                        NonViralName accnvn = (NonViralName)accTaxon.getName();\r
                         String name = accnvn.getTitleCache();\r
                         String rank = accnvn.getRank().getTitleCache();\r
                         String status = ACCEPTED_NAME_STATUS;\r
                         String name = accnvn.getTitleCache();\r
                         String rank = accnvn.getRank().getTitleCache();\r
                         String status = ACCEPTED_NAME_STATUS;\r
@@ -611,7 +624,7 @@ public class NameCatalogueController extends BaseController<TaxonNameBase, IName
                                 .getLabel();\r
                         ti.addToResponseRelatedTaxa(uuid, title, name, rank, status, "", relLabel);\r
                     }\r
                                 .getLabel();\r
                         ti.addToResponseRelatedTaxa(uuid, title, name, rank, status, "", relLabel);\r
                     }\r
-*/\r
+\r
                 }\r
                 tiList.add(ti);\r
             } else {\r
                 }\r
                 tiList.add(ti);\r
             } else {\r
index 16e9d6d1e216d1f48cdacda79027354f182ead7f..09efabf26ec027ee304b2bfcd36553ad5ef53d62 100755 (executable)
@@ -6,8 +6,10 @@ import java.util.Iterator;
 import java.util.List;\r
 import java.util.Set;\r
 \r
 import java.util.List;\r
 import java.util.Set;\r
 \r
+import eu.etaxonomy.cdm.model.common.Language;\r
 import eu.etaxonomy.cdm.model.name.NameRelationship;\r
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;\r
 import eu.etaxonomy.cdm.model.name.NameRelationship;\r
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.model.reference.Reference;\r
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.reference.Reference;\r
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
@@ -73,15 +75,20 @@ public class NameInformation implements RemoteResponse {
                        \r
                        NameRelationship nr = (NameRelationship)it.next();\r
                        if(nr.getType() != null) {\r
                        \r
                        NameRelationship nr = (NameRelationship)it.next();\r
                        if(nr.getType() != null) {\r
-                               typeString = nr.getType().toString();\r
+                               typeString = nr.getType()\r
+                                       .getRepresentation(Language.DEFAULT())\r
+                        .getLabel();\r
                        }\r
                        }\r
-                       if(nr.getRelatedFrom() != null) {\r
-                               relatednameCache = nr.getRelatedFrom().getTitleCache();\r
-                               Reference ref = (Reference) nr.getRelatedFrom().getNomenclaturalReference();\r
-                               relatedCitation = ref.getTitleCache();\r
+                       TaxonNameBase tnbRelatedTo = nr.getToName();\r
+                       if(tnbRelatedTo != null) {\r
+                           System.out.println("tnbRelatedTo not null");\r
+                               relatednameCache = tnbRelatedTo.getTitleCache();\r
+                               Reference ref = (Reference) tnbRelatedTo.getNomenclaturalReference();\r
+                               if(ref !=null) {\r
+                                   relatedCitation = ref.getTitleCache();\r
+                               }\r
                        }\r
                        }\r
-                       response.addToNameRelationships(typeString, \r
-                                       NameInformationResponse.NameRelationshipInfo.DIRECTION_FROM, \r
+                       response.addNameRelationships(typeString,\r
                                        relatednameCache, \r
                                        relatedCitation);\r
                }       \r
                                        relatednameCache, \r
                                        relatedCitation);\r
                }       \r
@@ -95,15 +102,21 @@ public class NameInformation implements RemoteResponse {
                        \r
                        NameRelationship nr = (NameRelationship)it.next();\r
                        if(nr.getType() != null) {\r
                        \r
                        NameRelationship nr = (NameRelationship)it.next();\r
                        if(nr.getType() != null) {\r
-                               typeString = nr.getType().toString();\r
+                               typeString = nr.getType()\r
+                                       .getInverseRepresentation(Language.DEFAULT())\r
+                        .getLabel();\r
                        }\r
                        }\r
-                       if(nr.getRelatedTo() != null) {\r
-                               relatednameCache = nr.getRelatedTo().getTitleCache();\r
-                               Reference ref = (Reference) nr.getRelatedTo().getNomenclaturalReference();\r
-                               relatedCitation = ref.getTitleCache();\r
+                       \r
+                       TaxonNameBase tnbRelatedFrom = nr.getFromName();\r
+                       if(tnbRelatedFrom != null) {\r
+                           System.out.println("tnbRelatedTo not null");\r
+                               relatednameCache = tnbRelatedFrom.getTitleCache();\r
+                               Reference ref = (Reference) tnbRelatedFrom.getNomenclaturalReference();\r
+                               if(ref !=null) {\r
+                                   relatedCitation = ref.getTitleCache();\r
+                               }\r
                        }\r
                        }\r
-                       response.addToNameRelationships(typeString, \r
-                                       NameInformationResponse.NameRelationshipInfo.DIRECTION_TO, \r
+                       response.addNameRelationships(typeString,\r
                                        relatednameCache, \r
                                        relatedCitation);\r
                }       \r
                                        relatednameCache, \r
                                        relatedCitation);\r
                }       \r
@@ -212,10 +225,10 @@ public class NameInformation implements RemoteResponse {
                        return this.citation;                                   \r
                }\r
                \r
                        return this.citation;                                   \r
                }\r
                \r
-               public void addToNameRelationships(String type, String direction, String relatedName, String citation) {\r
+               public void addNameRelationships(String type, String relatedName, String citation) {\r
                        NameInformation.NameInformationResponse.NameRelationshipInfo nr = \r
                                        new NameInformation.NameInformationResponse.NameRelationshipInfo();\r
                        NameInformation.NameInformationResponse.NameRelationshipInfo nr = \r
                                        new NameInformation.NameInformationResponse.NameRelationshipInfo();\r
-                       nr.setRelationInfo(type, direction, relatedName, citation);\r
+                       nr.setRelationInfo(type, relatedName, citation);\r
                        nameRelationships.add(nr);\r
                }\r
                \r
                        nameRelationships.add(nr);\r
                }\r
                \r
@@ -241,20 +254,17 @@ public class NameInformation implements RemoteResponse {
                \r
                public class NameRelationshipInfo {\r
                        private String type;\r
                \r
                public class NameRelationshipInfo {\r
                        private String type;\r
-                       private String direction;\r
                        private String relatedName;\r
                        private String citation;\r
                                \r
                        private String relatedName;\r
                        private String citation;\r
                                \r
-                       public final static String DIRECTION_TO = "TO";\r
-                       public final static String DIRECTION_FROM = "FROM";\r
+\r
                        \r
                        public NameRelationshipInfo() {\r
                                \r
                        }\r
                        \r
                        \r
                        public NameRelationshipInfo() {\r
                                \r
                        }\r
                        \r
-                       public void setRelationInfo(String type, String direction, String relatedName, String citation) {\r
+                       public void setRelationInfo(String type, String relatedName, String citation) {\r
                                this.type = type;\r
                                this.type = type;\r
-                               this.direction = direction;\r
                                this.relatedName = relatedName;\r
                                this.citation = citation;                       \r
                        }\r
                                this.relatedName = relatedName;\r
                                this.citation = citation;                       \r
                        }\r