/** * */ package org.goko.common.preferences.fieldeditor.ui.converter; import java.math.BigDecimal; import org.eclipse.core.databinding.conversion.Converter; import org.goko.common.preferences.fieldeditor.ui.UiQuantityFieldEditor; import org.goko.core.common.measure.quantity.Quantity; import org.goko.core.common.measure.units.Unit; /** * @author PsyKo * @date 15 janv. 2016 */ public abstract class StringToQuantityConverter<Q extends Quantity<Q>> extends Converter{ private UiQuantityFieldEditor<Q> editor; /** * @param fromType * @param toType */ public StringToQuantityConverter(UiQuantityFieldEditor<Q> editor, Class<Q> toType) { super(String.class, toType); this.editor = editor; } /** (inheritDoc) * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object) */ @Override public Object convert(Object fromObject) { return createQuantity(new BigDecimal((String)fromObject), editor.getUnit()); } protected abstract Q createQuantity(BigDecimal value, Unit<Q> unit); }