package edu.stanford.nlp.ie.qe;
/**
* Quantifiable entity unit.
*
* @author Angel Chang
*/
public class Unit {
protected String name;
protected String symbol;
protected String type;
protected String system;
protected String prefixSystem;
// What unit should be used to express this unit
protected Unit defaultUnit;
protected double defaultUnitScale = 1.0;
public Unit(String name, String symbol, String type) {
this.name = name;
this.symbol = symbol;
this.type = type;
}
public Unit(String name, String symbol, String type, Unit defaultUnit, double defaultUnitScale) {
this.name = name;
this.symbol = symbol;
this.type = type;
this.defaultUnit = defaultUnit;
this.defaultUnitScale = defaultUnitScale;
}
// TODO: unit specific formatting
public String format(double amount) {
return String.valueOf(amount) + symbol;
}
public String formatInDefaultUnit(double amount) {
if (defaultUnit != null && defaultUnit != this) {
return defaultUnit.formatInDefaultUnit(amount*defaultUnitScale);
} else {
return format(amount);
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSymbol() {
return symbol;
}
public void setSymbol(String symbol) {
this.symbol = symbol;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public Unit getDefaultUnit() {
return defaultUnit;
}
public void setDefaultUnit(Unit defaultUnit) {
this.defaultUnit = defaultUnit;
}
public double getDefaultUnitScale() {
return defaultUnitScale;
}
public void setDefaultUnitScale(double defaultUnitScale) {
this.defaultUnitScale = defaultUnitScale;
}
}