2019-10-24 16:55:38 +02:00
|
|
|
package eu.dnetlib.dhp.graph;
|
|
|
|
|
2019-10-24 16:56:13 +02:00
|
|
|
import com.googlecode.protobuf.format.JsonFormat;
|
|
|
|
import eu.dnetlib.data.proto.FieldTypeProtos;
|
|
|
|
import eu.dnetlib.data.proto.OafProtos;
|
2019-10-24 17:04:13 +02:00
|
|
|
import eu.dnetlib.dhp.schema.oaf.*;
|
2019-10-24 16:56:13 +02:00
|
|
|
|
2019-10-24 16:55:38 +02:00
|
|
|
public class ProtoUtils {
|
2019-10-24 16:56:13 +02:00
|
|
|
|
|
|
|
public static OafProtos.Oaf parse(String json) throws JsonFormat.ParseException {
|
|
|
|
final OafProtos.Oaf.Builder builder = OafProtos.Oaf.newBuilder();
|
|
|
|
JsonFormat.merge(json, builder);
|
|
|
|
return builder.build();
|
|
|
|
}
|
|
|
|
|
|
|
|
public static KeyValue mapKV(FieldTypeProtos.KeyValue kv) {
|
|
|
|
return new KeyValue()
|
|
|
|
.setKey(kv.getKey())
|
|
|
|
.setValue(kv.getValue())
|
|
|
|
.setDataInfo(mapDataInfo(kv.getDataInfo()));
|
|
|
|
}
|
|
|
|
|
|
|
|
public static DataInfo mapDataInfo(FieldTypeProtos.DataInfo d) {
|
|
|
|
return new DataInfo()
|
|
|
|
.setDeletedbyinference(d.getDeletedbyinference())
|
|
|
|
.setInferenceprovenance(d.getInferenceprovenance())
|
|
|
|
.setInferred(d.getInferred())
|
|
|
|
.setInvisible(d.getInvisible())
|
|
|
|
.setProvenanceaction(mapQualifier(d.getProvenanceaction()));
|
|
|
|
}
|
|
|
|
|
|
|
|
public static Qualifier mapQualifier(FieldTypeProtos.Qualifier q) {
|
|
|
|
return new Qualifier()
|
|
|
|
.setClassid(q.getClassid())
|
|
|
|
.setClassname(q.getClassname())
|
|
|
|
.setSchemeid(q.getSchemeid())
|
|
|
|
.setSchemename(q.getSchemename())
|
|
|
|
.setDataInfo(q.hasDataInfo() ? mapDataInfo(q.getDataInfo()) : null);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static StructuredProperty mapStructuredProperty(FieldTypeProtos.StructuredProperty sp) {
|
|
|
|
return new StructuredProperty()
|
|
|
|
.setValue(sp.getValue())
|
|
|
|
.setQualifier(mapQualifier(sp.getQualifier()))
|
|
|
|
.setDataInfo(sp.hasDataInfo() ? mapDataInfo(sp.getDataInfo()) : null);
|
|
|
|
}
|
|
|
|
|
2019-10-24 16:55:38 +02:00
|
|
|
}
|