package org.itsnat.droid.impl.xmlinflater;
import android.util.TypedValue;
import org.itsnat.droid.PercFloat;
import org.itsnat.droid.impl.util.MiscUtil;
/**
* Created by Jose on 04/11/2015.
*/
public class PercFloatImpl implements PercFloat
{
protected int dataType; // TypedValue.TYPE_FRACTION, TypedValue.TYPE_FLOAT
protected boolean fractionParent; // Sólo útil en caso de TYPE_FRACTION
protected float value;
public PercFloatImpl(int dataType, boolean fractionParent, float value)
{
this.dataType = dataType;
this.fractionParent = fractionParent;
this.value = value;
if (dataType != TypedValue.TYPE_FRACTION && dataType != TypedValue.TYPE_FLOAT) throw MiscUtil.internalError();
}
public PercFloatImpl(float value)
{
this(TypedValue.TYPE_FLOAT,false,value); // fractionParent es indiferente en este caso
}
@Override
public int getDataType() {
return dataType;
}
@Override
public boolean isFraction()
{
return dataType == TypedValue.TYPE_FRACTION;
}
@Override
public boolean isFractionParent()
{
return fractionParent; // Sólo interesa cuando es
}
@Override
public float getValue() {
return value;
}
@Override
public float toFloatBasedOnDataType()
{
if (dataType == TypedValue.TYPE_FRACTION)
{
return this.value / 100;
}
else if (dataType == TypedValue.TYPE_FLOAT)
{
return this.value;
}
else throw MiscUtil.internalError();
}
}