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 Long} and * {@link Product}. * * * @author Stefan Schmidt * @since 0.3 * */ public class LongToProduct implements TwoWayConverter { private ProductService productService; public LongToProduct(ProductService productService) { this.productService = productService; } public Object convertTargetToSourceClass(Object target, Class sourceClass) throws Exception { Product person = (Product) target; return person.toString(); } public Object convertSourceToTargetClass(Object source, Class targetClass) throws Exception { Long longSource = (Long) source; if (longSource != null && longSource > 0) { return productService.find(longSource); } else { return null; } } public Class getSourceClass() { return Long.class; } public Class getTargetClass() { return Product.class; } }