/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.cismap.commons.wms.capabilities.deegree;
import de.cismet.cismap.commons.exceptions.ConvertException;
import de.cismet.cismap.commons.wms.capabilities.Unit;
/**
* DOCUMENT ME!
*
* @author therter
* @version $Revision$, $Date$
*/
public class DeegreeUnit implements Unit {
//~ Instance fields --------------------------------------------------------
private org.deegree.crs.components.Unit un;
//~ Constructors -----------------------------------------------------------
/**
* Creates a new DeegreeUnit object.
*
* @param un DOCUMENT ME!
*/
public DeegreeUnit(final org.deegree.crs.components.Unit un) {
this.un = un;
}
//~ Methods ----------------------------------------------------------------
@Override
public double convert(final double value, final Unit targetUnit) throws ConvertException {
if (targetUnit instanceof DeegreeUnit) {
final org.deegree.crs.components.Unit dUnit = ((DeegreeUnit)targetUnit).toDeegreeUnit();
if (un.canConvert(dUnit)) {
return un.convert(value, dUnit);
} else {
throw new ConvertException("cannot convert from " + this.toString() + " to " + targetUnit);
}
} else {
throw new ConvertException(
"can only convert objects of the type DeegreeUnit. The given object has the type "
+ targetUnit.getClass().getName());
}
}
@Override
public double getScale() {
return un.getScale();
}
@Override
public double toBaseUnit(final double value) {
return un.toBaseUnits(value);
}
@Override
public boolean isBaseType() {
return un.isBaseType();
}
@Override
public String toString() {
return un.toString();
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
private org.deegree.crs.components.Unit toDeegreeUnit() {
return un;
}
}