package jVARIANT;

/** @file VARIANT.java
 *
 *  @brief b-CAP client library
 *
 * @version	1.1
 * @date		2014/1/30
 * @author		DENSO WAVE (m)
 *
 */
public final class VARIANT
{
	private int vt;
	private Object objVal;
	
	public VARIANT()
	{
		vt = VARENUM.VT_EMPTY;
		objVal = null;
	}
	
	public VARIANT(int inputvt, Object inputobjVal)
	{
		VariantPutType(inputvt);
		objVal = inputobjVal;
	}
	
	public void VariantPutType(int iType)
	{
		if(VARENUM.IsVARENUM(iType) && (iType != VARENUM.VT_VARIANT))
		{
			vt = iType;
		}
		else
		{
			vt = VARENUM.VT_EMPTY;
		}
	}
	
	public void VariantPutObject(Object obj)
	{
		objVal = obj;
	}
	
	public int VariantGetType()
	{
		return vt;
	}
	
	public Object VariantGetObject()
	{
		return objVal;
	}

	@Override
	public boolean equals(Object obj){
		if(!(obj instanceof jVARIANT.VARIANT)) return false;
		if(vt != ((VARIANT)obj).vt) return false;
		
		if(objVal == null){
			return ((VARIANT)obj).objVal == null;
		}else{
			return objVal.equals(((VARIANT)obj).objVal);
		}
	}
	
	@Override
	public String toString(){
		return "vt: " + Integer.toString(vt) + ", objVal: (" + (objVal != null ? objVal.toString() : "null") + ")";
	}
}

