package eu.dnetlib.dhp.graph; import com.googlecode.protobuf.format.JsonFormat; import eu.dnetlib.data.proto.FieldTypeProtos; import eu.dnetlib.data.proto.OafProtos; import eu.dnetlib.dhp.schema.oaf.*; public class ProtoUtils { 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); } public static ExtraInfo mapExtraInfo(FieldTypeProtos.ExtraInfo extraInfo) { return new ExtraInfo() .setName(extraInfo.getName()) .setTypology(extraInfo.getTypology()) .setProvenance(extraInfo.getProvenance()) .setTrust(extraInfo.getTrust()) .setValue(extraInfo.getValue()); } public static OAIProvenance mapOAIProvenance(FieldTypeProtos.OAIProvenance oaiProvenance) { return new OAIProvenance().setOriginDescription(mapOriginalDescription(oaiProvenance.getOriginDescription())); } public static OriginDescription mapOriginalDescription(FieldTypeProtos.OAIProvenance.OriginDescription originDescription) { final OriginDescription originDescriptionResult = new OriginDescription() .setHarvestDate(originDescription.getHarvestDate()) .setAltered(originDescription.getAltered()) .setBaseURL(originDescription.getBaseURL()) .setIdentifier(originDescription.getIdentifier()) .setDatestamp(originDescription.getDatestamp()) .setMetadataNamespace(originDescription.getMetadataNamespace()); // if (originDescription.hasOriginDescription()) // originDescriptionResult.setOriginDescription(mapOriginalDescription(originDescription.getOriginDescription())); return originDescriptionResult; } public static Journal mapJournal(FieldTypeProtos.Journal journal) { return new Journal() .setName(journal.getName()) .setIssnPrinted(journal.getIssnPrinted()) .setIssnOnline(journal.getIssnOnline()) .setIssnLinking(journal.getIssnLinking()) .setEp(journal.getEp()) .setIss(journal.getIss()) .setSp(journal.getSp()) .setVol(journal.getVol()) .setEdition(journal.getEdition()) .setConferenceplace(journal.getConferenceplace()) .setConferencedate(journal.getConferencedate()) .setDataInfo(mapDataInfo(journal.getDataInfo())) ; } public static Field mapStringField(FieldTypeProtos.StringField s) { return new Field() .setValue(s.getValue()) .setDataInfo(s.hasDataInfo() ? mapDataInfo(s.getDataInfo()) : null); } public static Field mapBoolField(FieldTypeProtos.BoolField b) { return new Field() .setValue(b.getValue()) .setDataInfo(b.hasDataInfo() ? mapDataInfo(b.getDataInfo()) : null); } public static Field mapIntField(FieldTypeProtos.IntField b) { return new Field() .setValue(b.getValue()) .setDataInfo(b.hasDataInfo() ? mapDataInfo(b.getDataInfo()) : null); } }