- adapted derivate hierarchy assembly to cdmlib3.4 changes (TissueSample, DnaSample...
authorPatric Plitzner <p.plitzner@bgbm.org>
Tue, 28 Oct 2014 18:24:53 +0000 (18:24 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Tue, 28 Oct 2014 18:24:53 +0000 (18:24 +0000)
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/OccurrenceServiceImpl.java

index fc9e134b19d03d17867625f685f877531cb04a05..d684d4da6ad7c0b076412518315ac74d1fd946cd 100644 (file)
@@ -17,6 +17,7 @@ import java.util.Arrays;
 import java.util.Collection;\r
 import java.util.HashMap;\r
 import java.util.HashSet;\r
+import java.util.LinkedHashSet;\r
 import java.util.List;\r
 import java.util.Map;\r
 import java.util.Map.Entry;\r
@@ -70,6 +71,7 @@ import eu.etaxonomy.cdm.model.media.MediaRepresentation;
 import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;\r
 import eu.etaxonomy.cdm.model.molecular.DnaSample;\r
 import eu.etaxonomy.cdm.model.molecular.Sequence;\r
+import eu.etaxonomy.cdm.model.molecular.SingleRead;\r
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.model.name.TypeDesignationStatusBase;\r
@@ -394,14 +396,19 @@ public class OccurrenceServiceImpl extends IdentifiableServiceBase<SpecimenOrObs
                 dto.addTypes(typeStatus, currentAccessionNumber);\r
             }\r
             //assemble molecular data\r
-            if(derivedUnit instanceof DnaSample){//.getRecordBasis()==SpecimenOrObservationType.DnaSample){\r
-                dto.setHasDna(true);\r
-\r
-                DnaSample dna = (DnaSample)derivedUnit;\r
-                for(Sequence sequence:dna.getSequences()){\r
-                    final URI boldUri = sequence.getBoldUri();\r
-                    final DefinedTerm dnaMarker = sequence.getDnaMarker();\r
-                    dto.addMolecularData(boldUri!=null?boldUri.toString():"", dnaMarker!=null?dnaMarker.getLabel():"[no marker]");\r
+            if(derivedUnit instanceof DnaSample){\r
+                if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.TissueSample){\r
+                    //TODO implement TissueSample assembly for web service\r
+                }\r
+                if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.DnaSample){\r
+                    dto.setHasDna(true);\r
+\r
+                    DnaSample dna = (DnaSample)derivedUnit;\r
+                    for(Sequence sequence:dna.getSequences()){\r
+                        final URI boldUri = sequence.getBoldUri();\r
+                        final DefinedTerm dnaMarker = sequence.getDnaMarker();\r
+                        dto.addMolecularData(boldUri!=null?boldUri.toString():"", dnaMarker!=null?dnaMarker.getLabel():"[no marker]");\r
+                    }\r
                 }\r
             }\r
             //assemble media data\r
@@ -410,22 +417,20 @@ public class OccurrenceServiceImpl extends IdentifiableServiceBase<SpecimenOrObs
                 MediaSpecimen media = (MediaSpecimen)derivedUnit;\r
                 String mediaUriString = getMediaUriString(media);\r
                 if(media.getKindOfUnit()!=null){\r
+                    //specimen scan\r
                     if(media.getKindOfUnit().getUuid().equals(UUID.fromString("acda15be-c0e2-4ea8-8783-b9b0c4ad7f03"))){\r
                         dto.setHasSpecimenScan(true);\r
-                        if(mediaUriString!=null){\r
                             final String imageLinkText = currentHerbarium+" "+currentAccessionNumber;\r
-                            dto.addSpecimenScan(mediaUriString, !imageLinkText.equals(" ")?imageLinkText:"[no accession]");\r
-                        }\r
+                            dto.addSpecimenScan(mediaUriString==null?"":mediaUriString, !imageLinkText.equals(" ")?imageLinkText:"[no accession]");\r
                     }\r
+                    //detail image\r
                     else if(media.getKindOfUnit().getUuid().equals(UUID.fromString("31eb8d02-bf5d-437c-bcc6-87a626445f34"))){\r
                         dto.setHasDetailImage(true);\r
-                        if(mediaUriString!=null){\r
-                            String motif = "";\r
-                            if(media.getMediaSpecimen()!=null && media.getMediaSpecimen().getTitle()!=null){\r
-                                motif = media.getMediaSpecimen().getTitle().getText();\r
-                            }\r
-                            dto.addDetailImage(mediaUriString, motif!=null?motif:"[no motif]");\r
+                        String motif = "";\r
+                        if(media.getMediaSpecimen()!=null && media.getMediaSpecimen().getTitle()!=null){\r
+                            motif = media.getMediaSpecimen().getTitle().getText();\r
                         }\r
+                        dto.addDetailImage(mediaUriString==null?"":mediaUriString, motif!=null?motif:"[no motif]");\r
                     }\r
                 }\r
             }\r