1 /*****************************************************************************
5 * Creation date 05.10.2012
8 *****************************************************************************/
10 package org.splat.util;
12 import java.sql.Timestamp;
15 import net.sf.beanlib.PropertyInfo;
16 import net.sf.beanlib.spi.BeanTransformerSpi;
17 import net.sf.beanlib.spi.CustomBeanTransformerSpi;
20 * the timsetamp transformer used by BeanHelper.
21 * @author Maria KRUCHININA
24 public class TimestampTransformer implements CustomBeanTransformerSpi{
27 * the bean transformer.
29 private final BeanTransformerSpi _beanTransformer;
33 * @param beanTransformer the bean transformer
35 public TimestampTransformer(final BeanTransformerSpi beanTransformer)
37 _beanTransformer = beanTransformer;
43 * @see net.sf.beanlib.spi.CustomBeanTransformerSpi#isTransformable(java.lang.Object, java.lang.Class, net.sf.beanlib.PropertyInfo)
45 public <T> boolean isTransformable(final Object from, final Class<T> toClass, final net.sf.beanlib.PropertyInfo info)
47 return ((from instanceof Timestamp) && (toClass == Timestamp.class));
53 * @see net.sf.beanlib.spi.Transformable#transform(java.lang.Object, java.lang.Class, net.sf.beanlib.PropertyInfo)
55 @SuppressWarnings("unchecked")
56 public <T> T transform(final Object in, final Class<T> toClass, final PropertyInfo info)
58 Map<Object,Object> cloneMap = _beanTransformer.getClonedMap();
59 Object clone = cloneMap.get(in);
66 Timestamp date = (Timestamp)in;
67 clone = new Timestamp(date.getTime());
69 ((Timestamp)clone).setNanos(date.getNanos());
70 cloneMap.put(in, clone);