From a62b2d367f0adc1fd9614f5d0c42d86278a84052 Mon Sep 17 00:00:00 2001
From: Patric Plitzner
Date: Tue, 29 Jul 2014 09:46:19 +0000
Subject: [PATCH] - added more parameters to DerivateHierarchyDTO
---
.../api/service/OccurrenceServiceImpl.java | 59 +++++-
.../api/service/dto/DerivateHierarchyDTO.java | 191 +++++++++++++++---
2 files changed, 213 insertions(+), 37 deletions(-)
diff --git a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/OccurrenceServiceImpl.java b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/OccurrenceServiceImpl.java
index f20265c5f3..ab2512baae 100644
--- a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/OccurrenceServiceImpl.java
+++ b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/OccurrenceServiceImpl.java
@@ -59,6 +59,8 @@ import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
import eu.etaxonomy.cdm.model.location.Country;
import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.cdm.model.media.MediaRepresentation;
+import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
import eu.etaxonomy.cdm.model.molecular.DnaSample;
import eu.etaxonomy.cdm.model.molecular.Sequence;
import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
@@ -66,6 +68,7 @@ import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;
+import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
import eu.etaxonomy.cdm.model.taxon.Taxon;
@@ -312,9 +315,9 @@ public class OccurrenceServiceImpl extends IdentifiableServiceBase derivedUnits = new ArrayList();
getDerivedUnitsFor(fieldUnit, derivedUnits);
+
for (DerivedUnit derivedUnit : derivedUnits) {
- if(derivedUnit.getKindOfUnit()!=null && derivedUnit.getKindOfUnit().getUuid().equals(UUID.fromString("acda15be-c0e2-4ea8-8783-b9b0c4ad7f03"))){
- dto.setHasSpecimenScan(true);
- break;
+ if(derivedUnit instanceof DnaSample){//.getRecordBasis()==SpecimenOrObservationType.DnaSample){
+ dto.setHasDna(true);
+
+ DnaSample dna = (DnaSample)derivedUnit;
+ if(dna.getBankNumber()!=null){
+ dto.getMolecularData().add(dna.getBankNumber());
+ }
+ }
+ if(derivedUnit instanceof MediaSpecimen){
+ dto.setHasDna(true);
+
+ MediaSpecimen media = (MediaSpecimen)derivedUnit;
+ String mediaUriString = getMediaUriString(media);
+ if(media.getKindOfUnit()!=null){
+ if(media.getKindOfUnit().getUuid().equals(UUID.fromString("acda15be-c0e2-4ea8-8783-b9b0c4ad7f03"))){
+ dto.setHasSpecimenScan(true);
+ if(mediaUriString!=null){
+ dto.getSpecimenScans().add(mediaUriString);
+ }
+ }
+ if(media.getKindOfUnit().getUuid().equals(UUID.fromString("detailImageUUid"))){
+ dto.setHasDetailImage(true);
+ if(mediaUriString!=null){
+ dto.getDetailImages().add(mediaUriString);
+ }
+ }
+ }
}
}
-
- dto.setNumberOfDerivates(derivedUnits.size());
-
return dto;
}
+private String getMediaUriString(MediaSpecimen mediaSpecimen){
+ String mediaUri = null;
+ Collection mediaRepresentations = mediaSpecimen.getMediaSpecimen().getRepresentations();
+ if(mediaRepresentations!=null && !mediaRepresentations.isEmpty()){
+ Collection mediaRepresentationParts = mediaRepresentations.iterator().next().getParts();
+ if(mediaRepresentationParts!=null && !mediaRepresentationParts.isEmpty()){
+ MediaRepresentationPart part = mediaRepresentationParts.iterator().next();
+ if(part.getUri()!=null){
+ mediaUri = part.getUri().toASCIIString();
+ }
+ }
+ }
+ return mediaUri;
+}
+
private void getDerivedUnitsFor(SpecimenOrObservationBase> specimen, Collection derivedUnits){
for(DerivationEvent derivationEvent:specimen.getDerivationEvents()){
for(DerivedUnit derivative:derivationEvent.getDerivatives()){
diff --git a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/dto/DerivateHierarchyDTO.java b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/dto/DerivateHierarchyDTO.java
index 2db624a1ec..f787892843 100644
--- a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/dto/DerivateHierarchyDTO.java
+++ b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/dto/DerivateHierarchyDTO.java
@@ -7,21 +7,35 @@ import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
public class DerivateHierarchyDTO {
+
private DerivedUnit typeUnit;
private List dnaSamples;
private List preservedSpecimensWithSpecimenScan;
private int numberOfDerivates;
+ private List herbaria;
private FieldUnit fieldUnit;
+ //Filter Flags
+ private boolean hasDna;
+ private boolean hasDetailImage;
+
+ //Row Attributes
private String country;
private String collection;
private String date;
- private List herbaria;
- private boolean isType;
+ private String herbarium;
+ private boolean hasType;
private boolean hasSpecimenScan;
-
- /**
+ //Detail pop-down
+ private String taxonName;
+ private String protologue;
+ private String citation;
+ private List types;
+ private List specimenScans;
+ private List molecularData;
+ private List detailImages;
+ /**
* @return the typeUnit
*/
public DerivedUnit getTypeUnit() {
@@ -57,6 +71,66 @@ public class DerivateHierarchyDTO {
public void setPreservedSpecimensWithSpecimenScan(List preservedSpecimensWithSpecimenScan) {
this.preservedSpecimensWithSpecimenScan = preservedSpecimensWithSpecimenScan;
}
+ /**
+ * @return the numberOfDerivates
+ */
+ public int getNumberOfDerivates() {
+ return numberOfDerivates;
+ }
+ /**
+ * @param numberOfDerivates the numberOfDerivates to set
+ */
+ public void setNumberOfDerivates(int numberOfDerivates) {
+ this.numberOfDerivates = numberOfDerivates;
+ }
+ /**
+ * @return the herbaria
+ */
+ public List getHerbaria() {
+ return herbaria;
+ }
+ /**
+ * @param herbaria the herbaria to set
+ */
+ public void setHerbaria(List herbaria) {
+ this.herbaria = herbaria;
+ }
+ /**
+ * @return the fieldUnit
+ */
+ public FieldUnit getFieldUnit() {
+ return fieldUnit;
+ }
+ /**
+ * @param fieldUnit the fieldUnit to set
+ */
+ public void setFieldUnit(FieldUnit fieldUnit) {
+ this.fieldUnit = fieldUnit;
+ }
+ /**
+ * @return the hasDna
+ */
+ public boolean isHasDna() {
+ return hasDna;
+ }
+ /**
+ * @param hasDna the hasDna to set
+ */
+ public void setHasDna(boolean hasDna) {
+ this.hasDna = hasDna;
+ }
+ /**
+ * @return the hasDetailImage
+ */
+ public boolean isHasDetailImage() {
+ return hasDetailImage;
+ }
+ /**
+ * @param hasDetailImage the hasDetailImage to set
+ */
+ public void setHasDetailImage(boolean hasDetailImage) {
+ this.hasDetailImage = hasDetailImage;
+ }
/**
* @return the country
*/
@@ -94,16 +168,28 @@ public class DerivateHierarchyDTO {
this.date = date;
}
/**
- * @return the isType
+ * @return the herbarium
*/
- public boolean isType() {
- return isType;
+ public String getHerbarium() {
+ return herbarium;
}
/**
- * @param isType the isType to set
+ * @param herbarium the herbarium to set
*/
- public void setType(boolean isType) {
- this.isType = isType;
+ public void setHerbarium(String herbarium) {
+ this.herbarium = herbarium;
+ }
+ /**
+ * @return the hasType
+ */
+ public boolean isHasType() {
+ return hasType;
+ }
+ /**
+ * @param hasType the hasType to set
+ */
+ public void setHasType(boolean hasType) {
+ this.hasType = hasType;
}
/**
* @return the hasSpecimenScan
@@ -118,40 +204,89 @@ public class DerivateHierarchyDTO {
this.hasSpecimenScan = hasSpecimenScan;
}
/**
- * @return the numberOfDerivates
+ * @return the taxonName
*/
- public int getNumberOfDerivates() {
- return numberOfDerivates;
+ public String getTaxonName() {
+ return taxonName;
}
/**
- * @param numberOfDerivates the numberOfDerivates to set
+ * @param taxonName the taxonName to set
*/
- public void setNumberOfDerivates(int numberOfDerivates) {
- this.numberOfDerivates = numberOfDerivates;
+ public void setTaxonName(String taxonName) {
+ this.taxonName = taxonName;
}
/**
- * @return the herbaria
+ * @return the protologue
*/
- public List getHerbaria() {
- return herbaria;
+ public String getProtologue() {
+ return protologue;
}
/**
- * @param herbaria the herbaria to set
+ * @param protologue the protologue to set
*/
- public void setHerbaria(List herbaria) {
- this.herbaria = herbaria;
+ public void setProtologue(String protologue) {
+ this.protologue = protologue;
}
/**
- * @return the fieldUnit
+ * @return the citation
*/
- public FieldUnit getFieldUnit() {
- return fieldUnit;
+ public String getCitation() {
+ return citation;
}
/**
- * @param fieldUnit the fieldUnit to set
+ * @param citation the citation to set
*/
- public void setFieldUnit(FieldUnit fieldUnit) {
- this.fieldUnit = fieldUnit;
+ public void setCitation(String citation) {
+ this.citation = citation;
}
+ /**
+ * @return the types
+ */
+ public List getTypes() {
+ return types;
+ }
+ /**
+ * @param types the types to set
+ */
+ public void setTypes(List types) {
+ this.types = types;
+ }
+ /**
+ * @return the specimenScans
+ */
+ public List getSpecimenScans() {
+ return specimenScans;
+ }
+ /**
+ * @param specimenScans the specimenScans to set
+ */
+ public void setSpecimenScans(List specimenScans) {
+ this.specimenScans = specimenScans;
+ }
+ /**
+ * @return the molecularData
+ */
+ public List getMolecularData() {
+ return molecularData;
+ }
+ /**
+ * @param molecularData the molecularData to set
+ */
+ public void setMolecularData(List molecularData) {
+ this.molecularData = molecularData;
+ }
+ /**
+ * @return the detailImages
+ */
+ public List getDetailImages() {
+ return detailImages;
+ }
+ /**
+ * @param detailImages the detailImages to set
+ */
+ public void setDetailImages(List detailImages) {
+ this.detailImages = detailImages;
+ }
+
}
--
2.34.1