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