package net.stsmedia.financemanager.web.converters; import net.stsmedia.financemanager.domain.Product; import net.stsmedia.financemanager.service.ProductService; import org.springframework.binding.convert.converters.TwoWayConverter; /** * A editor which allows the translation between {@link String} and * {@link Product}. * * * @author Stefan Schmidt * @since 0.3 * */ public class StringToProduct implements TwoWayConverter { private ProductService productService; public StringToProduct(ProductService productService) { this.productService = productService; } public Object convertTargetToSourceClass(Object target, Class sourceClass) throws Exception { String stringSource = (String) target; if (stringSource != null && stringSource.length() > 0) { return productService.find(Long.valueOf(stringSource)); } else { return null; } } public Object convertSourceToTargetClass(Object source, Class targetClass) throws Exception { if(source != null) return ((Product) source).toString(); else return null; } public Class getSourceClass() { return String.class; } public Class getTargetClass() { return Product.class; } }