]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
f3a8a7d428e3deb510abee8db3de7e588e7e9986
[tmp/jakarta-migration.git] /
1 package org.collectionspace.services.nuxeo.elasticsearch.anthro;
2
3 import java.util.List;
4 import java.util.Map;
5
6 import org.apache.commons.lang3.StringUtils;
7 import org.codehaus.jackson.node.ObjectNode;
8 import org.collectionspace.services.common.api.RefNameUtils;
9 import org.collectionspace.services.nuxeo.elasticsearch.DefaultESDocumentWriter;
10 import org.nuxeo.ecm.core.api.DocumentModel;
11
12 public class AnthroESDocumentWriter extends DefaultESDocumentWriter {
13
14         @Override
15         public ObjectNode getDenormValues(DocumentModel doc) {
16                 ObjectNode denormValues = super.getDenormValues(doc);
17                 String docType = doc.getType();
18
19                 if (docType.startsWith("CollectionObject")) {
20                         // Create a list of collection years from the field collection date structured date.
21
22                         Map<String, Object> fieldCollectionDateGroup = (Map<String, Object>) doc.getProperty("collectionobjects_common", "fieldCollectionDateGroup");
23
24                         denormValues.putArray("collectionYears").addAll(structDateToYearNodes(fieldCollectionDateGroup));
25                 }
26
27                 return denormValues;
28         }
29
30         @Override
31         protected String computeTitle(DocumentModel doc) {
32                 List<Map<String, Object>> objectNameGroups = (List<Map<String, Object>>) doc.getProperty("collectionobjects_common", "objectNameList");
33                 String primaryObjectName = null;
34
35                 if (objectNameGroups.size() > 0) {
36                         Map<String, Object> primaryObjectNameGroup = objectNameGroups.get(0);
37                         primaryObjectName = (String) primaryObjectNameGroup.get("objectName");
38                 }
39
40                 if (StringUtils.isNotEmpty(primaryObjectName)) {
41                         return primaryObjectName;
42                 }
43
44                 List<Map<String, Object>> titleGroups = (List<Map<String, Object>>) doc.getProperty("collectionobjects_common", "titleGroupList");
45                 String primaryTitle = null;
46
47                 if (titleGroups.size() > 0) {
48                         Map<String, Object> primaryTitleGroup = titleGroups.get(0);
49                         primaryTitle = (String) primaryTitleGroup.get("title");
50                 }
51
52                 if (StringUtils.isNotEmpty(primaryTitle)) {
53                         return primaryTitle;
54                 }
55
56                 List<Map<String, Object>> taxonomicIdentGroups = (List<Map<String, Object>>) doc.getProperty("collectionobjects_naturalhistory_extension", "taxonomicIdentGroupList");
57                 String primaryTaxon = null;
58
59                 if (taxonomicIdentGroups.size() > 0) {
60                         Map<String, Object> primaryTaxonomicIdentGroup = taxonomicIdentGroups.get(0);
61                         primaryTaxon = (String) primaryTaxonomicIdentGroup.get("taxon");
62                 }
63
64                 if (StringUtils.isNotEmpty(primaryTaxon)) {
65                         primaryTaxon = RefNameUtils.getDisplayName(primaryTaxon);
66                 }
67
68                 return primaryTaxon;
69         }
70 }