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

package org.onosproject.xran.codecs.api;

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

import java.math.BigInteger;


public class HOFailureCause extends BerEnum {

	private static final long serialVersionUID = 1L;

	public HOFailureCause() {
	}

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

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

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

}
