Skip to content

Commit

Permalink
socialUnits support
Browse files Browse the repository at this point in the history
  • Loading branch information
naknomum committed Jan 31, 2025
1 parent a2b7300 commit bf89aa4
Showing 1 changed file with 24 additions and 10 deletions.
34 changes: 24 additions & 10 deletions src/main/java/org/ecocean/MarkedIndividual.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import org.ecocean.social.Membership;
import org.ecocean.social.Relationship;
import org.ecocean.social.SocialUnit;
import org.json.JSONArray;

import java.text.DecimalFormat;

Expand Down Expand Up @@ -2627,7 +2628,6 @@ public org.json.JSONObject opensearchMapping() {
map.put("sex", keywordType);
map.put("taxonomy", keywordType);
map.put("users", keywordType);
map.put("socialUnits", keywordType);
map.put("relationshipRoles", keywordType);
map.put("cooccurrenceIndividualIds", keywordType);

Expand All @@ -2639,6 +2639,7 @@ public org.json.JSONObject opensearchMapping() {
map.put("locationGeoPoints", new org.json.JSONObject("{\"type\": \"geo_point\"}"));

map.put("nameMap", new org.json.JSONObject("{\"type\": \"nested\", \"dynamic\": false}"));
map.put("socialUnits", new org.json.JSONObject("{\"type\": \"nested\"}"));
map.put("cooccurrenceIndividualMap",
new org.json.JSONObject("{\"type\": \"nested\", \"dynamic\": false}"));
return map;
Expand All @@ -2649,6 +2650,7 @@ public void opensearchDocumentSerializer(JsonGenerator jgen, Shepherd myShepherd
super.opensearchDocumentSerializer(jgen, myShepherd);

jgen.writeStringField("sex", this.getSex());
jgen.writeStringField("displayName", this.getDisplayName());
jgen.writeStringField("taxonomy", this.getTaxonomyString());
if (this.getTimeOfBirth() > 0) {
String birthTime = Util.getISO8601Date(new DateTime(this.getTimeOfBirth()).toString());
Expand Down Expand Up @@ -2681,21 +2683,35 @@ public void opensearchDocumentSerializer(JsonGenerator jgen, Shepherd myShepherd
jgen.writeEndObject();
}
/*
social group name
social role name
social group members (names and IDs)
membership start
membership end
all social relationships [flexible list] [needs custom values exposed through site settings]
SOCIAL RELATIONSHIPS
relationship partner (name and ID)
relationship role
relationship start
relationship end
*/
jgen.writeArrayFieldStart("socialUnits");
for (SocialUnit su : myShepherd.getAllSocialUnitsForMarkedIndividual(this)) {
jgen.writeStartObject();
jgen.writeStringField("name", su.getSocialUnitName());
JSONArray memIds = new JSONArray();
JSONArray memNames = new JSONArray();
for (Membership mem : su.getAllMembers()) {
memIds.put(mem.getMarkedIndividual().getId());
memNames.put(mem.getMarkedIndividual().getDisplayName());
}
jgen.writeArrayFieldStart("memberIds");
jgen.writeRawValue(memIds.toString());
jgen.writeEndArray();
jgen.writeArrayFieldStart("memberNames");
jgen.writeRawValue(memNames.toString());
jgen.writeEndArray();
Membership mem = su.getMembershipForMarkedIndividual(this);
if (mem != null) jgen.writeString(su.getSocialUnitName());
if (mem != null) {
jgen.writeStringField("role", mem.getRole());
jgen.writeStringField("startDate", mem.getStartDate());
jgen.writeStringField("endDate", mem.getEndDate());
}
jgen.writeStartObject();
}
jgen.writeEndArray();
jgen.writeArrayFieldStart("relationshipRoles");
Expand Down Expand Up @@ -2772,7 +2788,6 @@ public void opensearchIndexDeep()
throws IOException {
this.opensearchIndex();

/*
final String indivId = this.getId();
ExecutorService executor = Executors.newFixedThreadPool(4);
Runnable rn = new Runnable() {
Expand Down Expand Up @@ -2818,7 +2833,6 @@ public void run() {
executor.execute(rn);
System.out.println("opensearchIndexDeep() [foreground] finished for MarkedIndividual " +
indivId);
*/
}

public String toString() {
Expand Down

0 comments on commit bf89aa4

Please sign in to comment.