/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.cids.custom.switchon;
import org.openide.util.NbBundle;
import java.io.Serializable;
/**
* DOCUMENT ME!
*
* @author martin.scholl@cismet.de
* @version $Revision$, $Date$
*/
// TODO: refactor as soon as abstract enums are possible
public final class Unit extends LocalisedEnum<Unit> implements Serializable {
//~ Static fields/initializers ---------------------------------------------
public static final Unit M = new Unit("urn:ogc:def:uom:OGC:m", "Meter"); // NOI18N
public static final Unit CM = new Unit("urn:ogc:def:uom:OGC:cm", "Centimeter"); // NOI18N
public static final Unit MM = new Unit(
"urn:ogc:def:uom:OGC:mm", // NOI18N
NbBundle.getMessage(Unit.class, "Unit.MILLIMETERS.localisedName")); // NOI18N
public static final Unit PPM = new Unit(
"urn:ogc:def:uom:OGC:ppm", // NOI18N
NbBundle.getMessage(Unit.class, "Unit.PARTS_PER_MILLION.localisedName")); // NOI18N
public static final Unit PPB = new Unit(
"urn:ogc:def:uom:OGC:ppb", // NOI18N
NbBundle.getMessage(Unit.class, "Unit.PARTS_PER_BILLION.localisedName")); // NOI18N
public static final Unit KELVIN = new Unit(
"urn:ogc:def:uom:OGC:K", // NOI18N
NbBundle.getMessage(
Unit.class,
"Unit.KELVIN.localisedName")); // NOI18N
public static final Unit M3S = new Unit(
"urn:org:def:uom:OGC:m3s", // NOI18N
NbBundle.getMessage(Unit.class, "Unit.M3S.localisedName")); // NOI18N
public static final Unit LS = new Unit(
"l/s", // NOI18N
NbBundle.getMessage(Unit.class, "Unit.LS.localisedName")); // NOI18N
public static final Unit M3 = new Unit(
"m^3", // NOI18N
NbBundle.getMessage(Unit.class, "Unit.M3.localisedName")); // NOI18N
public static final Unit MM_MIN = new Unit(
"mm/min", // NOI18N
NbBundle.getMessage(Unit.class, "Unit.MM_MIN.localisedName")); // NOI18N
public static final Unit MM_DAY = new Unit(
"mm/day", // NOI18N
NbBundle.getMessage(Unit.class, "Unit.MM_DAY.localisedName")); // NOI18N
public static final Unit MG_L = new Unit(
"mg/l", // NOI18N
NbBundle.getMessage(Unit.class, "Unit.MG_L.localisedName")); // NOI18N
public static final Unit METERS = new Unit(
"m", // NOI18N
NbBundle.getMessage(Unit.class, "Unit.METERS.localisedName")); // NOI18N
public static final Unit KG = new Unit(
"kg", // NOI18N
NbBundle.getMessage(Unit.class, "Unit.KG.localisedName")); // NOI18N
public static final Unit MM_H = new Unit(
"mm/h", // NOI18N
org.openide.util.NbBundle.getMessage(Unit.class, "Unit.MM_H.localisedName")); // NOI18N
public static final Unit L_S_HA = new Unit("l/s*ha", NbBundle.getMessage(Unit.class, "Unit.L_S_HA.localisedName")); // NOI18N
public static final Unit CELSIUS = new Unit(
"urn:org:def:uom:OGC:Celcius", // NOI18N
NbBundle.getMessage(Unit.class, "Unit.CELSIUS.localisedName")); // NOI18N
//~ Instance fields --------------------------------------------------------
private final transient String propertyKey;
//~ Constructors -----------------------------------------------------------
/**
* Creates a new Unit object.
*/
private Unit() {
this(null, null);
}
/**
* Creates a new Unit object.
*
* @param propertyKey DOCUMENT ME!
*/
private Unit(final String propertyKey) {
this(propertyKey, null);
}
/**
* Creates a new Unit object.
*
* @param propertyKey DOCUMENT ME!
* @param localisedName DOCUMENT ME!
*/
private Unit(final String propertyKey, final String localisedName) {
super(localisedName);
this.propertyKey = propertyKey;
}
//~ Methods ----------------------------------------------------------------
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public String getPropertyKey() {
return propertyKey;
}
@Override
protected Unit[] internalValues() {
return values();
}
/**
* DOCUMENT ME!
*
* @param unit DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public static Unit createCustomUnit(final String unit) {
return new Unit(unit, unit);
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public static Unit[] values() {
return new Unit[] {
MM, PPB, PPM, KELVIN,
M3S, LS, M3, MM_MIN, MM_DAY,
MG_L, METERS, KG, CELSIUS
};
}
}