org.das2.datum
Class EnumerationUnits

java.lang.Object
  extended by org.das2.datum.Units
      extended by org.das2.datum.EnumerationUnits
All Implemented Interfaces:
Displayable

public class EnumerationUnits
extends Units

Units class for mapping arbitary objects to Datums. Nothing about the contract for a Datum requires that they correspond to physical quanities, and we can assign a mapping from numbers to objects using this class. This allows information such as "Cluster 1" or "Spin Flip" to be encoded. This is used to model ordinal or nominal data, as described in http://en.wikipedia.org/wiki/Level_of_measurement


Field Summary
static java.util.HashMap<java.lang.Class,EnumerationUnits> unitsInstances
           
 
Fields inherited from class org.das2.datum.Units
bytes, bytesPerSecond, cdfEpoch, celciusDegrees, centigrade, cmps, days, dB, degrees, dimensionless, eV, fahrenheitDegrees, fahrenheitScale, hertz, hours, inches, kelvin, kiloBytes, kiloBytesPerSecond, kiloHertz, kiloMeters, log10Ratio, logERatio, megaHertz, meters, microseconds, milliseconds, minutes, mj1958, mjd, nanoseconds, pcm3, percent, percentIncrease, radians, seconds, t1970, t2000, us1980, us2000, v2pm2Hz, wpm2
 
Constructor Summary
EnumerationUnits(java.lang.String id)
           
EnumerationUnits(java.lang.String id, java.lang.String description)
           
 
Method Summary
 Datum add(java.lang.Number a, java.lang.Number b, Units bUnits)
           
static EnumerationUnits create(java.lang.Object o)
           
 Datum createDatum(double d)
           
 Datum createDatum(double d, double resolution)
           
 Datum createDatum(int value)
           
 Datum createDatum(int ival, java.lang.Object object)
          creates the datum, explicitly setting the ordinal.
 Datum createDatum(long value)
           
 Datum createDatum(java.lang.Number value)
           
 Datum createDatum(java.lang.Object object)
           
static Datum createDatumAndUnits(java.lang.Object object)
           
 DatumVector createDatumVector(java.lang.Object[] objects)
           
 Datum divide(java.lang.Number a, java.lang.Number b, Units bUnits)
           
 DatumFormatterFactory getDatumFormatterFactory()
           
 int getHighestOrdinal()
           
 java.lang.Object getObject(Datum datum)
           
 java.util.Map<java.lang.Integer,Datum> getValues()
          provides access to map of all values.
 Datum multiply(java.lang.Number a, java.lang.Number b, Units bUnits)
           
 Datum parse(java.lang.String s)
           
 Datum subtract(java.lang.Number a, java.lang.Number b, Units bUnits)
           
 java.lang.String toString()
           
 
Methods inherited from class org.das2.datum.Units
convertDoubleTo, format, getBasis, getByName, getConvertableUnits, getConverter, getConverter, getFillDatum, getFillDouble, getFillFloat, getFillInt, getFillLong, getId, getListIcon, getListLabel, getOffsetUnits, grannyFormat, isConvertableTo, isFill, isFill, isFill, isFill, isFill, isValid, main, registerConverter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

unitsInstances

public static java.util.HashMap<java.lang.Class,EnumerationUnits> unitsInstances
Constructor Detail

EnumerationUnits

public EnumerationUnits(java.lang.String id)

EnumerationUnits

public EnumerationUnits(java.lang.String id,
                        java.lang.String description)
Method Detail

createDatumAndUnits

public static Datum createDatumAndUnits(java.lang.Object object)

createDatum

public Datum createDatum(int ival,
                         java.lang.Object object)
creates the datum, explicitly setting the ordinal. Use with caution.

Parameters:
ival -
sval -
Throws:
java.lang.IllegalArgumentException - if this ordinal is already taken by a different value.

createDatumVector

public DatumVector createDatumVector(java.lang.Object[] objects)

createDatum

public Datum createDatum(java.lang.Object object)

getValues

public java.util.Map<java.lang.Integer,Datum> getValues()
provides access to map of all values.

Returns:

createDatum

public Datum createDatum(int value)
Specified by:
createDatum in class Units

createDatum

public Datum createDatum(long value)
Specified by:
createDatum in class Units

createDatum

public Datum createDatum(java.lang.Number value)
Specified by:
createDatum in class Units

getObject

public java.lang.Object getObject(Datum datum)

create

public static EnumerationUnits create(java.lang.Object o)

createDatum

public Datum createDatum(double d)
Specified by:
createDatum in class Units

createDatum

public Datum createDatum(double d,
                         double resolution)
Specified by:
createDatum in class Units

getDatumFormatterFactory

public DatumFormatterFactory getDatumFormatterFactory()
Specified by:
getDatumFormatterFactory in class Units

subtract

public Datum subtract(java.lang.Number a,
                      java.lang.Number b,
                      Units bUnits)
Specified by:
subtract in class Units

add

public Datum add(java.lang.Number a,
                 java.lang.Number b,
                 Units bUnits)
Specified by:
add in class Units

divide

public Datum divide(java.lang.Number a,
                    java.lang.Number b,
                    Units bUnits)
Specified by:
divide in class Units

multiply

public Datum multiply(java.lang.Number a,
                      java.lang.Number b,
                      Units bUnits)
Specified by:
multiply in class Units

parse

public Datum parse(java.lang.String s)
            throws java.text.ParseException
Specified by:
parse in class Units
Throws:
java.text.ParseException

getHighestOrdinal

public int getHighestOrdinal()

toString

public java.lang.String toString()
Overrides:
toString in class Units