--- /dev/null
+/*******************************************************************************\r
+ * Copyright (c) 2010 Association for Decentralized Information Management in\r
+ * Industry THTH ry.\r
+ * All rights reserved. This program and the accompanying materials\r
+ * are made available under the terms of the Eclipse Public License v1.0\r
+ * which accompanies this distribution, and is available at\r
+ * http://www.eclipse.org/legal/epl-v10.html\r
+ *\r
+ * Contributors:\r
+ * VTT Technical Research Centre of Finland - initial API and implementation\r
+ *******************************************************************************/\r
+package org.simantics.databoard;
+
+import org.simantics.databoard.units.ConverterCreator;\r
+import org.simantics.databoard.units.IUnitConverter;\r
+import org.simantics.databoard.units.IdentityConverter;\r
+import org.simantics.databoard.units.internal.UnitParseException;\r
+import org.simantics.databoard.units.internal.library.UnitLibrary;\r
+
+public class Units {
+
+ public static UnitLibrary library = UnitLibrary.createDefault();
+
+ /**
+ * Create converter
+ *
+ * @param sourceUnit
+ * @param targetUnit
+ * @return the converter
+ * @throws UnitParseException
+ */
+ public static IUnitConverter createConverter(String sourceUnit, String targetUnit) throws UnitParseException {
+ if(sourceUnit.equals(targetUnit))
+ return IdentityConverter.INSTANCE;
+ ConverterCreator creator = new ConverterCreator(library);
+ creator.unit(sourceUnit, 1);
+ creator.unit(targetUnit, -1);
+ return creator.createConverter();
+ }
+
+ public static double convert(double value, String sourceUnit, String targetUnit) throws UnitParseException {
+ IUnitConverter c = createConverter(sourceUnit, targetUnit);
+ if (c==null) throw new UnitParseException(sourceUnit+" or "+targetUnit, "could not convert");
+ return c.convert(value);
+ }
+
+
+}