ConnectedGoodsDatumConverter.java

package io.uverify.backend.extension.validators.converter;

import com.bloxbean.cardano.client.common.cbor.CborSerializationUtil;
import com.bloxbean.cardano.client.exception.CborRuntimeException;
import com.bloxbean.cardano.client.plutus.annotation.BasePlutusDataConverter;
import com.bloxbean.cardano.client.plutus.spec.BytesPlutusData;
import com.bloxbean.cardano.client.plutus.spec.ConstrPlutusData;
import com.bloxbean.cardano.client.plutus.spec.ListPlutusData;
import com.bloxbean.cardano.client.util.HexUtil;
import io.uverify.backend.extension.validators.ConnectedGoodsDatum;
import java.lang.Exception;
import java.lang.String;
import java.util.ArrayList;
import java.util.Objects;

/**
 * Auto generated code. DO NOT MODIFY
 */
public class ConnectedGoodsDatumConverter extends BasePlutusDataConverter {
  public ConstrPlutusData toPlutusData(ConnectedGoodsDatum obj) {
    ConstrPlutusData constr = initConstr(0);
    //Field id
    Objects.requireNonNull(obj.getId(), "id cannot be null");
    constr.getData().add(toPlutusData(obj.getId()));

    //Field items
    Objects.requireNonNull(obj.getItems(), "items cannot be null");
    ListPlutusData itemsListPlutusData = ListPlutusData.builder().build();
    for(var item: obj.getItems()) {
      itemsListPlutusData.add(new io.uverify.backend.extension.validators.converter.ConnectedGoodsDatumItemConverter().toPlutusData(item));
    }
    constr.getData().add(itemsListPlutusData);

    return constr;
  }

  public ConnectedGoodsDatum fromPlutusData(ConstrPlutusData constr) {
    var obj = new ConnectedGoodsDatum();
    var data = constr.getData();

    //Field id
    var id = ((BytesPlutusData)data.getPlutusDataList().get(0)).getValue();
    obj.setId(id);

    //Field items
    var itemsList = (ListPlutusData)data.getPlutusDataList().get(1);
    java.util.List<io.uverify.backend.extension.validators.ConnectedGoodsDatumItem> items = new ArrayList<>();
    for(var item: ((ListPlutusData)itemsList).getPlutusDataList()) {
      var o = new io.uverify.backend.extension.validators.converter.ConnectedGoodsDatumItemConverter().fromPlutusData((ConstrPlutusData)item);
      items.add(o);
    }
    obj.setItems(items);
    return obj;
  }

  public byte[] serialize(ConnectedGoodsDatum obj) {
    Objects.requireNonNull(obj);;
    try {
      var constr = toPlutusData(obj);
      return CborSerializationUtil.serialize(constr.serialize());
    } catch (Exception e) {
      throw new CborRuntimeException(e);
    }
  }

  public String serializeToHex(ConnectedGoodsDatum obj) {
    Objects.requireNonNull(obj);;
    var constr = toPlutusData(obj);
    return constr.serializeToHex();
  }

  public ConnectedGoodsDatum deserialize(byte[] bytes) {
    Objects.requireNonNull(bytes);;
    try {
      var di = CborSerializationUtil.deserialize(bytes);
      var constr = ConstrPlutusData.deserialize(di);
      return fromPlutusData(constr);
    } catch (Exception e) {
      throw new CborRuntimeException(e);
    }
  }

  public ConnectedGoodsDatum deserialize(String hex) {
    Objects.requireNonNull(hex);;
    var bytes = HexUtil.decodeHexString(hex);
    return deserialize(bytes);
  }
}