added measure at the level of the result. Changed the way the measures are dumped since the previous serialization was not able to describe in the correct way the current association measure and value for the indicators (for BipFinder)

This commit is contained in:
Miriam Baglioni 2022-09-22 15:50:39 +02:00
parent 3905afa0c2
commit b5ee457969
5 changed files with 76 additions and 42 deletions

View File

@ -13,7 +13,6 @@ public class Indicator implements Serializable {
@JsonSchema(description = "The measures for that indicator") @JsonSchema(description = "The measures for that indicator")
private List<Measure> measure; private List<Measure> measure;
public String getId() { public String getId() {
return id; return id;
} }
@ -30,7 +29,7 @@ public class Indicator implements Serializable {
this.measure = measure; this.measure = measure;
} }
public static Indicator newInstance(String id, List<Measure> measure){ public static Indicator newInstance(String id, List<Measure> measure) {
Indicator indicator = new Indicator(); Indicator indicator = new Indicator();
indicator.id = id; indicator.id = id;
indicator.measure = measure; indicator.measure = measure;

View File

@ -1,47 +1,49 @@
package eu.dnetlib.dhp.oa.model; package eu.dnetlib.dhp.oa.model;
import java.io.Serializable;
import org.apache.commons.lang3.StringUtils;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
import org.apache.commons.lang3.StringUtils;
import java.io.Serializable;
/** /**
* @author miriam.baglioni * @author miriam.baglioni
* @Date 03/08/22 * @Date 03/08/22
*/ */
public class Measure implements Serializable { public class Measure implements Serializable {
@JsonSchema(description = "The measure (i.e. class)") @JsonSchema(description = "The measure (i.e. class)")
private String key; private String key;
@JsonSchema(description = "The value for that measure") @JsonSchema(description = "The value for that measure")
private String value; private String value;
public String getKey() { public String getKey() {
return key; return key;
} }
public void setKey(String key) { public void setKey(String key) {
this.key = key; this.key = key;
} }
public String getValue() { public String getValue() {
return value; return value;
} }
public void setValue(String value) { public void setValue(String value) {
this.value = value; this.value = value;
} }
public static Measure newInstance(String key, String value) { public static Measure newInstance(String key, String value) {
Measure mes = new Measure(); Measure mes = new Measure();
mes.key = key; mes.key = key;
mes.value = value; mes.value = value;
return mes; return mes;
} }
@JsonIgnore @JsonIgnore
public boolean isBlank() { public boolean isBlank() {
return StringUtils.isBlank(key) && StringUtils.isBlank(value); return StringUtils.isBlank(key) && StringUtils.isBlank(value);
} }
} }

View File

@ -4,6 +4,7 @@ package eu.dnetlib.dhp.oa.model;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
/** /**
@ -168,6 +169,18 @@ public class Result implements Serializable {
@JsonSchema(description = "Timestamp of last update of the record in OpenAIRE") @JsonSchema(description = "Timestamp of last update of the record in OpenAIRE")
private Long lastupdatetimestamp; private Long lastupdatetimestamp;
@JsonSchema(description = "Indicators computed for this result, for example UsageCount ones")
private List<Indicator> indicators;
@JsonInclude(JsonInclude.Include.NON_NULL)
public List<Indicator> getIndicators() {
return indicators;
}
public void setIndicators(List<Indicator> indicators) {
this.indicators = indicators;
}
public Long getLastupdatetimestamp() { public Long getLastupdatetimestamp() {
return lastupdatetimestamp; return lastupdatetimestamp;
} }

View File

@ -5,7 +5,8 @@ import java.io.Serializable;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import eu.dnetlib.dhp.oa.model.Measure; import eu.dnetlib.dhp.schema.common.ModelConstants;
import eu.dnetlib.dhp.schema.oaf.*;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import eu.dnetlib.dhp.eosc.model.EoscInteroperabilityFramework; import eu.dnetlib.dhp.eosc.model.EoscInteroperabilityFramework;
@ -16,8 +17,9 @@ import eu.dnetlib.dhp.oa.model.*;
import eu.dnetlib.dhp.oa.model.AccessRight; import eu.dnetlib.dhp.oa.model.AccessRight;
import eu.dnetlib.dhp.oa.model.Author; import eu.dnetlib.dhp.oa.model.Author;
import eu.dnetlib.dhp.oa.model.GeoLocation; import eu.dnetlib.dhp.oa.model.GeoLocation;
import eu.dnetlib.dhp.oa.model.Instance;
import eu.dnetlib.dhp.oa.model.Indicator; import eu.dnetlib.dhp.oa.model.Indicator;
import eu.dnetlib.dhp.oa.model.Instance;
import eu.dnetlib.dhp.oa.model.Measure;
import eu.dnetlib.dhp.oa.model.OpenAccessRoute; import eu.dnetlib.dhp.oa.model.OpenAccessRoute;
import eu.dnetlib.dhp.oa.model.Result; import eu.dnetlib.dhp.oa.model.Result;
import eu.dnetlib.dhp.oa.model.community.CfHbKeyValue; import eu.dnetlib.dhp.oa.model.community.CfHbKeyValue;
@ -25,8 +27,7 @@ import eu.dnetlib.dhp.oa.model.community.CommunityInstance;
import eu.dnetlib.dhp.oa.model.community.CommunityResult; import eu.dnetlib.dhp.oa.model.community.CommunityResult;
import eu.dnetlib.dhp.oa.model.community.Context; import eu.dnetlib.dhp.oa.model.community.Context;
import eu.dnetlib.dhp.oa.model.graph.GraphResult; import eu.dnetlib.dhp.oa.model.graph.GraphResult;
import eu.dnetlib.dhp.schema.common.ModelConstants;
import eu.dnetlib.dhp.schema.oaf.*;
public class ResultMapper implements Serializable { public class ResultMapper implements Serializable {
@ -230,6 +231,22 @@ public class ResultMapper implements Serializable {
out.setType(input.getResulttype().getClassid()); out.setType(input.getResulttype().getClassid());
if(Optional.ofNullable(input.getMeasures()).isPresent() && input.getMeasures().size() > 0 && !Constants.DUMPTYPE.EOSC.getType().equals(dumpType)){
List<Indicator> indicators = new ArrayList<>();
input.getMeasures()
.forEach(
m -> indicators
.add(
Indicator
.newInstance(
m.getId(),
m.getUnit()
.stream()
.map(u -> Measure.newInstance(u.getKey(), u.getValue()))
.collect(Collectors.toList()))));
out.setIndicators(indicators);
}
if (Constants.DUMPTYPE.EOSC.getType().equals(dumpType)) { if (Constants.DUMPTYPE.EOSC.getType().equals(dumpType)) {
if (Optional.ofNullable(input.getEoscifguidelines()).isPresent()) { if (Optional.ofNullable(input.getEoscifguidelines()).isPresent()) {
List<EoscIfGuidelines> gei = input.getEoscifguidelines(); List<EoscIfGuidelines> gei = input.getEoscifguidelines();
@ -476,10 +493,15 @@ public class ResultMapper implements Serializable {
mes mes
.get() .get()
.forEach( .forEach(
m -> indicators.add(Indicator.newInstance(m.getId(), m -> indicators
m.getUnit().stream() .add(
.map(u -> Measure.newInstance(u.getKey(),u.getValue())) Indicator
.collect(Collectors.toList())))); .newInstance(
m.getId(),
m.getUnit()
.stream()
.map(u -> Measure.newInstance(u.getKey(), u.getValue()))
.collect(Collectors.toList()))));
instance.setIndicators(indicators); instance.setIndicators(indicators);
} }
@ -553,8 +575,6 @@ public class ResultMapper implements Serializable {
} }
private static List<Provenance> getUniqueProvenance(List<Provenance> provenance) private static List<Provenance> getUniqueProvenance(List<Provenance> provenance)
throws NoAvailableEntityTypeException { throws NoAvailableEntityTypeException {
Provenance iProv = new Provenance(); Provenance iProv = new Provenance();

View File

@ -102,7 +102,7 @@
<junit-jupiter.version>5.6.1</junit-jupiter.version> <junit-jupiter.version>5.6.1</junit-jupiter.version>
<dhp.commons.lang.version>3.5</dhp.commons.lang.version> <dhp.commons.lang.version>3.5</dhp.commons.lang.version>
<dhp.guava.version>11.0.2</dhp.guava.version> <dhp.guava.version>11.0.2</dhp.guava.version>
<dhp-schemas.version>[2.12.2-SCHEMA-NO-DUMP]</dhp-schemas.version> <dhp-schemas.version>[2.12.1]</dhp-schemas.version>
</properties> </properties>
</project> </project>