From 04767c39544e698b347a541650d225386f55e5d0 Mon Sep 17 00:00:00 2001 From: Michael Ritter Date: Mon, 2 Mar 2026 10:13:07 -0700 Subject: [PATCH] DRYD-2042: Update AdvancedSearch Response for Materials and Herbarium (#508) * Add material to advanced search response * Add determinationTaxon to advanced search response --- .../advancedsearch/model/MaterialModel.java | 18 ++++++++++++++++ .../advancedsearch/model/TaxonModel.java | 16 ++++++++++++++ .../main/resources/advanced-search_common.xsd | 6 ++++++ .../mapper/CollectionObjectMapper.java | 3 +++ .../collectionobjects_naturalhistory.xsd | 21 +++++++++++++++++++ 5 files changed, 64 insertions(+) create mode 100644 services/advancedsearch/jaxb/src/main/java/org/collectionspace/services/advancedsearch/model/MaterialModel.java diff --git a/services/advancedsearch/jaxb/src/main/java/org/collectionspace/services/advancedsearch/model/MaterialModel.java b/services/advancedsearch/jaxb/src/main/java/org/collectionspace/services/advancedsearch/model/MaterialModel.java new file mode 100644 index 000000000..55a7e80c4 --- /dev/null +++ b/services/advancedsearch/jaxb/src/main/java/org/collectionspace/services/advancedsearch/model/MaterialModel.java @@ -0,0 +1,18 @@ +package org.collectionspace.services.advancedsearch.model; + +import org.collectionspace.services.collectionobject.CollectionobjectsCommon; +import org.collectionspace.services.collectionobject.MaterialGroupList; + +public class MaterialModel { + + public static String material(CollectionobjectsCommon collectionObject) { + String material = null; + if (collectionObject != null && collectionObject.getMaterialGroupList() != null) { + MaterialGroupList materialGroup = collectionObject.getMaterialGroupList(); + if (!materialGroup.getMaterialGroup().isEmpty()) { + material = materialGroup.getMaterialGroup().get(0).getMaterial(); + } + } + return material; + } +} diff --git a/services/advancedsearch/jaxb/src/main/java/org/collectionspace/services/advancedsearch/model/TaxonModel.java b/services/advancedsearch/jaxb/src/main/java/org/collectionspace/services/advancedsearch/model/TaxonModel.java index 1be0f9c25..37448c97d 100644 --- a/services/advancedsearch/jaxb/src/main/java/org/collectionspace/services/advancedsearch/model/TaxonModel.java +++ b/services/advancedsearch/jaxb/src/main/java/org/collectionspace/services/advancedsearch/model/TaxonModel.java @@ -4,6 +4,8 @@ import java.util.List; import org.collectionspace.services.collectionobject.CollectionobjectsCommon; import org.collectionspace.services.collectionobject.domain.naturalhistory_extension.CollectionobjectsNaturalhistory; +import org.collectionspace.services.collectionobject.domain.naturalhistory_extension.DeterminationHistoryGroup; +import org.collectionspace.services.collectionobject.domain.naturalhistory_extension.DeterminationHistoryGroupList; import org.collectionspace.services.collectionobject.domain.naturalhistory_extension.TaxonomicIdentGroup; import org.collectionspace.services.collectionobject.domain.naturalhistory_extension.TaxonomicIdentGroupList; @@ -34,4 +36,18 @@ public class TaxonModel { return form; } + + public static String determinationTaxon(final CollectionobjectsNaturalhistory naturalHistory) { + String taxon = null; + if (naturalHistory != null && naturalHistory.getTaxonomicIdentGroupList() != null) { + DeterminationHistoryGroupList determinationGroupList = naturalHistory.getDeterminationHistoryGroupList(); + List determinationGroups = determinationGroupList.getDeterminationHistoryGroup(); + if (!determinationGroups.isEmpty()) { + DeterminationHistoryGroup group = determinationGroups.get(0); + taxon = group.getDeterminationTaxon(); + } + } + + return taxon; + } } diff --git a/services/advancedsearch/jaxb/src/main/resources/advanced-search_common.xsd b/services/advancedsearch/jaxb/src/main/resources/advanced-search_common.xsd index 50fb31c20..f6b28889f 100644 --- a/services/advancedsearch/jaxb/src/main/resources/advanced-search_common.xsd +++ b/services/advancedsearch/jaxb/src/main/resources/advanced-search_common.xsd @@ -73,6 +73,12 @@ + + + + + + diff --git a/services/advancedsearch/service/src/main/java/org/collectionspace/services/advancedsearch/mapper/CollectionObjectMapper.java b/services/advancedsearch/service/src/main/java/org/collectionspace/services/advancedsearch/mapper/CollectionObjectMapper.java index 4dd3622e4..08c0311f9 100644 --- a/services/advancedsearch/service/src/main/java/org/collectionspace/services/advancedsearch/mapper/CollectionObjectMapper.java +++ b/services/advancedsearch/service/src/main/java/org/collectionspace/services/advancedsearch/mapper/CollectionObjectMapper.java @@ -17,6 +17,7 @@ import org.collectionspace.services.advancedsearch.model.AgentModel; import org.collectionspace.services.advancedsearch.model.BriefDescriptionListModel; import org.collectionspace.services.advancedsearch.model.ContentConceptListModel; import org.collectionspace.services.advancedsearch.model.FieldCollectionModel; +import org.collectionspace.services.advancedsearch.model.MaterialModel; import org.collectionspace.services.advancedsearch.model.NAGPRACategoryModel; import org.collectionspace.services.advancedsearch.model.ObjectNameListModel; import org.collectionspace.services.advancedsearch.model.ObjectProductionModel; @@ -139,6 +140,7 @@ public class CollectionObjectMapper { }); item.setForm(TaxonModel.preservationForm(collectionObject)); + item.setMaterial(MaterialModel.material(collectionObject)); // from media resource if (!blobInfo.isEmpty()) { @@ -151,6 +153,7 @@ public class CollectionObjectMapper { if (naturalHistory != null) { item.setTaxon(TaxonModel.taxon(naturalHistory)); + item.setDeterminationTaxon(TaxonModel.determinationTaxon(naturalHistory)); } if (objectsNAGPRA != null) { diff --git a/services/collectionobject/jaxb/src/main/resources/collectionobjects_naturalhistory.xsd b/services/collectionobject/jaxb/src/main/resources/collectionobjects_naturalhistory.xsd index a501ca71e..6830cc542 100644 --- a/services/collectionobject/jaxb/src/main/resources/collectionobjects_naturalhistory.xsd +++ b/services/collectionobject/jaxb/src/main/resources/collectionobjects_naturalhistory.xsd @@ -42,6 +42,7 @@ + @@ -70,6 +71,26 @@ + + + + + + + + + + + + + + + + + + -- 2.47.3