info.monitorenter.util.units
Class AUnit

java.lang.Object
  extended by info.monitorenter.util.units.AUnit
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
UnitFemto, UnitGiga, UnitKilo, UnitMega, UnitMicro, UnitMilli, UnitNano, UnitPeta, UnitPico, UnitTera, UnitUnchanged

public abstract class AUnit
extends Object
implements Serializable

A unit.

Version:
$Revision: 1.4 $
Author:
Achim Westermann
See Also:
UnitFactory, IUnitSystem, UnitSystemSI, Serialized Form

Field Summary
protected  int m_decimals
          Decimals for rounding.
protected  double m_factor
          The factor a result of getValue(double) had to be multiplied with if the real (unitless) value has to be calculated.
protected  AUnit m_nexLowerUnit
          The next smaller unit to this one within this unit's IUnitSystem.
protected  AUnit m_nextHigherUnit
          The next greater unit to this one within this unit's IUnitSystem.
protected  String m_unitName
          The short unit name of this unit a result of getValue(double) has to be related with to know the this result is displayed in a unit.
 
Constructor Summary
protected AUnit()
          Protected constructor to ensure package access only.
 
Method Summary
 int getDecimals()
          Returns the number of decimals that should be be taken into account if the method getValue(double) is invoked (rounding).
 double getFactor()
          Returns the factor a result of getValue(double) had to be multiplied with if the real (unitless) value has to be calculated.
 String getLabel(double value)
          Returns the the value divided by this unit's factor, rounded to this unit's configured decimals and suffixed by the unit name.
 AUnit getNexLowerUnit()
          Returns the next smaller unit to this one within this unit's IUnitSystem.
 AUnit getNextHigherUnit()
          Returns the next greater unit to this one within this unit's IUnitSystem.
 String getUnitName()
          Retunrns the short unit name of this unit a result of getValue(double) has to be related with to know the this result is displayed in a unit.
 double getValue(double value)
          Transforms the given absolute value into the represented unit value by dividing by the specific factor.
 void setDecimals(int aftercomma)
          Define how many decimals should be taken into account if the method getValue(double) is invoked (rounding).
 String toString()
          Returns the same as getUnitName(), prefer calling this directly if desired.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

m_decimals

protected int m_decimals
Decimals for rounding.


m_factor

protected double m_factor
The factor a result of getValue(double) had to be multiplied with if the real (unitless) value has to be calculated.


m_nexLowerUnit

protected AUnit m_nexLowerUnit
The next smaller unit to this one within this unit's IUnitSystem.


m_nextHigherUnit

protected AUnit m_nextHigherUnit
The next greater unit to this one within this unit's IUnitSystem.


m_unitName

protected String m_unitName
The short unit name of this unit a result of getValue(double) has to be related with to know the this result is displayed in a unit.

Constructor Detail

AUnit

protected AUnit()
Protected constructor to ensure package access only.

Use UnitFactory.getInstance() and UnitFactory.getUnit(double, IUnitSystem) to obtain a proper unit.

Method Detail

getDecimals

public int getDecimals()
Returns the number of decimals that should be be taken into account if the method getValue(double) is invoked (rounding).

Returns:
the number of decimals that should be be taken into account if the method getValue(double) is invoked (rounding).

getFactor

public double getFactor()
Returns the factor a result of getValue(double) had to be multiplied with if the real (unitless) value has to be calculated.

For performance reason (fast access) factor is public. This is against "safety by desing" so do never set this value.

Returns:
the factor a result of getValue(double) had to be multiplied with if the real (unitless) value has to be calculated.

getLabel

public String getLabel(double value)
Returns the the value divided by this unit's factor, rounded to this unit's configured decimals and suffixed by the unit name.

Parameters:
value - the value for the label.
Returns:
the the value divided by this unit's factor, rounded by this unit's configured decimals and suffixed by the unit name.
See Also:
getUnitName(), getDecimals()

getNexLowerUnit

public AUnit getNexLowerUnit()
Returns the next smaller unit to this one within this unit's IUnitSystem.

If this is already the smallest unit, this will be returned so add unit == unit.getLowerUnit() as the termination criteria in loops to search for the smallest unit (to avoid endless loops).

Returns:
the next lower unit to this one within this unit's IUnitSystem.

getNextHigherUnit

public AUnit getNextHigherUnit()
Returns the next greater unit to this one within this unit's IUnitSystem.

If this is already the greates unit, this will be returned so add unit == unit.getNextHigherUnit() as the termination criteria in loops to search for the greatest unit (to avoid endless loops).

Returns:
the next greater unit to this one within this unit's IUnitSystem.

getUnitName

public String getUnitName()
Retunrns the short unit name of this unit a result of getValue(double) has to be related with to know the this result is displayed in a unit.

Returns:
the short unit name of this unit a result of getValue(double) has to be related with to know the this result is displayed in a unit.


getValue

public double getValue(double value)
Transforms the given absolute value into the represented unit value by dividing by the specific factor.

The result is rounded using the actual decimal setting.

Parameters:
value - the value to represent in this unit.
Returns:
The value to display in this unit rounded using the internal decimals.

setDecimals

public void setDecimals(int aftercomma)
Define how many decimals should be taken into account if the method getValue(double) is invoked (rounding).

Parameters:
aftercomma - the number of decimals that should be taken into account if the method getValue(double) is invoked (rounding)

toString

public String toString()
Returns the same as getUnitName(), prefer calling this directly if desired.

Overrides:
toString in class Object
Returns:
the same as getUnitName(), prefer calling this directly if desired.


Copyright © 2001 - 2007 LGPL, All Rights Footloose.