SocialHubRedeemerConverter.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.ConstrPlutusData;
import com.bloxbean.cardano.client.plutus.spec.ListPlutusData;
import com.bloxbean.cardano.client.util.HexUtil;
import io.uverify.backend.extension.validators.SocialHubRedeemer;
import java.lang.Exception;
import java.lang.IllegalArgumentException;
import java.lang.String;
import java.util.Objects;

/**
 * Auto generated code. DO NOT MODIFY
 */
public class SocialHubRedeemerConverter extends BasePlutusDataConverter {
  public ConstrPlutusData toPlutusData(SocialHubRedeemer socialHubRedeemer) {
    if(socialHubRedeemer == SocialHubRedeemer.UPDATE) {
      return ConstrPlutusData.builder().alternative(0).data(ListPlutusData.of()).build();
    }
    if(socialHubRedeemer == SocialHubRedeemer.TRANSFER) {
      return ConstrPlutusData.builder().alternative(1).data(ListPlutusData.of()).build();
    }
    throw new IllegalArgumentException("Invalid enum value : " + socialHubRedeemer);
  }

  public SocialHubRedeemer fromPlutusData(ConstrPlutusData constr) {
    var data = constr.getData();
    if(constr.getAlternative() == 0) {
      return SocialHubRedeemer.UPDATE;
    }
    if(constr.getAlternative() == 1) {
      return SocialHubRedeemer.TRANSFER;
    }
    throw new IllegalArgumentException("Invalid alternative : " + constr.getAlternative());
  }

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

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

  public SocialHubRedeemer 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 SocialHubRedeemer deserialize(String hex) {
    Objects.requireNonNull(hex);;
    var bytes = HexUtil.decodeHexString(hex);
    return deserialize(bytes);
  }
}