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")
private List<Measure> measure;
public String getId() {
return id;
}
@ -30,7 +29,7 @@ public class Indicator implements Serializable {
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.id = id;
indicator.measure = measure;

View File

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

View File

@ -5,7 +5,8 @@ import java.io.Serializable;
import java.util.*;
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 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.Author;
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.Instance;
import eu.dnetlib.dhp.oa.model.Measure;
import eu.dnetlib.dhp.oa.model.OpenAccessRoute;
import eu.dnetlib.dhp.oa.model.Result;
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.Context;
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 {
@ -230,6 +231,22 @@ public class ResultMapper implements Serializable {
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 (Optional.ofNullable(input.getEoscifguidelines()).isPresent()) {
List<EoscIfGuidelines> gei = input.getEoscifguidelines();
@ -476,10 +493,15 @@ public class ResultMapper implements Serializable {
mes
.get()
.forEach(
m -> indicators.add(Indicator.newInstance(m.getId(),
m.getUnit().stream()
.map(u -> Measure.newInstance(u.getKey(),u.getValue()))
.collect(Collectors.toList()))));
m -> indicators
.add(
Indicator
.newInstance(
m.getId(),
m.getUnit()
.stream()
.map(u -> Measure.newInstance(u.getKey(), u.getValue()))
.collect(Collectors.toList()))));
instance.setIndicators(indicators);
}
@ -553,8 +575,6 @@ public class ResultMapper implements Serializable {
}
private static List<Provenance> getUniqueProvenance(List<Provenance> provenance)
throws NoAvailableEntityTypeException {
Provenance iProv = new Provenance();

View File

@ -102,7 +102,7 @@
<junit-jupiter.version>5.6.1</junit-jupiter.version>
<dhp.commons.lang.version>3.5</dhp.commons.lang.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>
</project>