/**
 * This class file was automatically generated by jASN1 v1.8.2 (http://www.openmuc.org)
 */

package org.onosproject.xran.asn1lib.api;

import org.onosproject.xran.asn1lib.ber.types.BerEnum;

import java.math.BigInteger;


public class ReconfIndReason extends BerEnum {

    private static final long serialVersionUID = 1L;

    public ReconfIndReason() {
    }

    public ReconfIndReason(byte[] code) {
        super(code);
    }

    public ReconfIndReason(BigInteger value) {
        super(value);
    }

    public ReconfIndReason(long value) {
        super(value);
    }

}
