]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
DRYD-929: Change es indexed title in anthro to name → title → taxon.
authorRay Lee <ray.lee@lyrasis.org>
Fri, 2 Apr 2021 22:52:58 +0000 (18:52 -0400)
committerRay Lee <ray.lee@lyrasis.org>
Fri, 2 Apr 2021 22:52:58 +0000 (18:52 -0400)
3rdparty/nuxeo/nuxeo-platform-elasticsearch/src/main/java/org/collectionspace/services/nuxeo/elasticsearch/DefaultESDocumentWriter.java
3rdparty/nuxeo/nuxeo-platform-elasticsearch/src/main/java/org/collectionspace/services/nuxeo/elasticsearch/anthro/AnthroESDocumentWriter.java
3rdparty/nuxeo/nuxeo-platform-elasticsearch/src/main/java/org/collectionspace/services/nuxeo/elasticsearch/materials/MaterialsESDocumentWriter.java

index 2bf7797346c778e2c7f28e41e0cf70274213f74c..3cf670db0de1b4f4cf26ae31431862b688c1e7b2 100644 (file)
@@ -194,7 +194,7 @@ private void denormExhibitionRecords(CoreSession session, String csid, String te
         * Compute a title for the public browser. This needs to be indexed in ES so that it can
         * be used for sorting. (Even if it's just extracting the primary value.)
         */
-       private String computeTitle(DocumentModel doc) {
+       protected String computeTitle(DocumentModel doc) {
                List<Map<String, Object>> titleGroups = (List<Map<String, Object>>) doc.getProperty("collectionobjects_common", "titleGroupList");
                String primaryTitle = null;
 
index e3b041d947c1e568bd3c0ad18e7ca1f00070d2d9..f3a8a7d428e3deb510abee8db3de7e588e7e9986 100644 (file)
@@ -1,9 +1,11 @@
 package org.collectionspace.services.nuxeo.elasticsearch.anthro;
 
+import java.util.List;
 import java.util.Map;
 
+import org.apache.commons.lang3.StringUtils;
 import org.codehaus.jackson.node.ObjectNode;
-
+import org.collectionspace.services.common.api.RefNameUtils;
 import org.collectionspace.services.nuxeo.elasticsearch.DefaultESDocumentWriter;
 import org.nuxeo.ecm.core.api.DocumentModel;
 
@@ -24,4 +26,45 @@ public class AnthroESDocumentWriter extends DefaultESDocumentWriter {
 
                return denormValues;
        }
+
+       @Override
+       protected String computeTitle(DocumentModel doc) {
+               List<Map<String, Object>> objectNameGroups = (List<Map<String, Object>>) doc.getProperty("collectionobjects_common", "objectNameList");
+               String primaryObjectName = null;
+
+               if (objectNameGroups.size() > 0) {
+                       Map<String, Object> primaryObjectNameGroup = objectNameGroups.get(0);
+                       primaryObjectName = (String) primaryObjectNameGroup.get("objectName");
+               }
+
+               if (StringUtils.isNotEmpty(primaryObjectName)) {
+                       return primaryObjectName;
+               }
+
+               List<Map<String, Object>> titleGroups = (List<Map<String, Object>>) doc.getProperty("collectionobjects_common", "titleGroupList");
+               String primaryTitle = null;
+
+               if (titleGroups.size() > 0) {
+                       Map<String, Object> primaryTitleGroup = titleGroups.get(0);
+                       primaryTitle = (String) primaryTitleGroup.get("title");
+               }
+
+               if (StringUtils.isNotEmpty(primaryTitle)) {
+                       return primaryTitle;
+               }
+
+               List<Map<String, Object>> taxonomicIdentGroups = (List<Map<String, Object>>) doc.getProperty("collectionobjects_naturalhistory_extension", "taxonomicIdentGroupList");
+               String primaryTaxon = null;
+
+               if (taxonomicIdentGroups.size() > 0) {
+                       Map<String, Object> primaryTaxonomicIdentGroup = taxonomicIdentGroups.get(0);
+                       primaryTaxon = (String) primaryTaxonomicIdentGroup.get("taxon");
+               }
+
+               if (StringUtils.isNotEmpty(primaryTaxon)) {
+                       primaryTaxon = RefNameUtils.getDisplayName(primaryTaxon);
+               }
+
+               return primaryTaxon;
+       }
 }
index 2e2ffde8c84c023dff6a8b68d569ee35f133f3ba..9ce7b84f374d1b6f5e00fca89aaa78b7193e8067 100644 (file)
@@ -180,12 +180,8 @@ public class MaterialsESDocumentWriter extends DefaultESDocumentWriter {
                denormValues.putArray("mediaAltText").addAll(mediaAltTexts);
        }
 
-
-       /**
-        * Compute a title for the public browser. This needs to be indexed in ES so that it can
-        * be used for sorting. (Even if it's just extracting the primary value.)
-        */
-       private String computeTitle(DocumentModel doc) {
+       @Override
+       protected String computeTitle(DocumentModel doc) {
                List<Map<String, Object>> termGroups = (List<Map<String, Object>>) doc.getProperty("materials_common", "materialTermGroupList");
                String primaryDisplayName = null;