package com.openxc.units; /** * A quantitative type of {@link Unit}. * * All quantitative children of {@link Unit} extend from this abstract class, * which encapsulates common logic for converting among different numerical * values. */ public abstract class Quantity<T extends Number> extends Unit { private T mValue; /** * Construct an instance of Quantity with the value. * * @param value a quantitative Unit value. */ public Quantity(T value) { mValue = value; } @Override public boolean equals(Object obj) { if(!super.equals(obj)) { return false; } @SuppressWarnings("unchecked") final Quantity<T> other = (Quantity<T>) obj; return mValue.equals(other.mValue); } public double doubleValue() { return mValue.doubleValue(); } @Override public Object getSerializedValue() { return doubleValue(); } public int intValue() { return mValue.intValue(); } public String getTypeString() { return ""; } @Override public String toString() { return mValue.toString() + " " + getTypeString(); } }