package eu.dnetlib.iis.wf.importer; import java.util.Arrays; import com.google.protobuf.InvalidProtocolBufferException; import com.googlecode.protobuf.format.JsonFormat; import com.googlecode.protobuf.format.JsonFormat.ParseException; import eu.dnetlib.data.proto.OafProtos.Oaf; /** * {@link Oaf} helper class. * * @author mhorst * */ public final class OafHelper { // --------------------- CONSTRUCTORS -------------------------- private OafHelper() {} // --------------------- LOGIC --------------------------------- /** * Builds {@link Oaf} object from byte array. * * @param input byte array input * @return {@link Oaf} object built from byte array. * @throws InvalidProtocolBufferException */ public static Oaf buildOaf(byte[] input) throws InvalidProtocolBufferException { Oaf.Builder oafBuilder = Oaf.newBuilder(); oafBuilder.mergeFrom(input); return oafBuilder.build(); } /** * Builds {@link Oaf} object from JSON representation. * * @param input JSON representation of {@link Oaf} object * @throws ParseException */ public static Oaf buildOaf(String input) throws ParseException { Oaf.Builder oafBuilder = Oaf.newBuilder(); JsonFormat.merge(input, oafBuilder); return oafBuilder.build(); } /** * Copies array or returns null when source is null. * * @param source * @return copied array */ final public static byte[] copyArrayWhenNotNull(byte[] source) { if (source != null) { return Arrays.copyOf(source, source.length); } else { return null; } } }