From 36cfe7cc1f44c5f415fd345e52cbb622138cd71b Mon Sep 17 00:00:00 2001 From: Tor-Einar Skog <tor-einar.skog@nibio.no> Date: Fri, 5 May 2023 12:58:01 +0200 Subject: [PATCH] Add observationData (optional) to pest entity --- .../no/nibio/vips/logic/entity/Organism.java | 11 ++++++++ .../observationdata/ObservationDataBean.java | 25 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/main/java/no/nibio/vips/logic/entity/Organism.java b/src/main/java/no/nibio/vips/logic/entity/Organism.java index 612cfaec..e545d430 100755 --- a/src/main/java/no/nibio/vips/logic/entity/Organism.java +++ b/src/main/java/no/nibio/vips/logic/entity/Organism.java @@ -100,6 +100,9 @@ public class Organism implements Serializable { @Transient private String observationDataSchema; + + @Transient + private String observationData; /*@OneToMany(cascade = CascadeType.ALL, mappedBy = "organism") private Set<OrganismLocale> organismLocaleSet; @@ -357,4 +360,12 @@ public class Organism implements Serializable { public void setObservationDataSchema(String observationDataSchema) { this.observationDataSchema = observationDataSchema; } + + public String getObservationData() { + return observationData; + } + + public void setObservationData(String observationData) { + this.observationData = observationData; + } } diff --git a/src/main/java/no/nibio/vips/observationdata/ObservationDataBean.java b/src/main/java/no/nibio/vips/observationdata/ObservationDataBean.java index f8e1d2ee..357d5924 100644 --- a/src/main/java/no/nibio/vips/observationdata/ObservationDataBean.java +++ b/src/main/java/no/nibio/vips/observationdata/ObservationDataBean.java @@ -14,6 +14,7 @@ import javax.persistence.PersistenceContext; import javax.servlet.http.HttpServletRequest; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; @@ -86,6 +87,29 @@ public class ObservationDataBean { return m.createObjectNode(); } } + + public JsonNode getDataModel(Integer organizationId, Integer organismId) + { + ObjectMapper m = new ObjectMapper(); + + JsonNode rootNode = null; + try { + try { + //System.out.println("organizationId = " + organizationId + ", organismId = " + organismId); + ObservationDataSchema ods = em.createNamedQuery("ObservationDataSchema.findByPK", ObservationDataSchema.class) + .setParameter("organizationId", organizationId) + .setParameter("organismId", organismId) + .getSingleResult(); + rootNode = m.readTree(ods.getDataModel()); + } catch (NoResultException ex) { + rootNode = m.readTree(this.getStandardModel()); + } + }catch (JsonProcessingException ex) + { + return null; + } + return rootNode; + } public String getStandardSchema(){ @@ -119,6 +143,7 @@ public class ObservationDataBean { for(Organism pest:pests) { pest.setObservationDataSchema(om.writeValueAsString(this.getSchema(organizationId, pest.getOrganismId(), bundle))); + pest.setObservationData(om.writeValueAsString(this.getDataModel(organizationId, pest.getOrganismId()))); } return pests; } -- GitLab