import java.util.Map;
-import org.splat.log.AppLogger;
-
import net.sf.beanlib.PropertyInfo;
import net.sf.beanlib.spi.BeanTransformerSpi;
import net.sf.beanlib.spi.CustomBeanTransformerSpi;
+import org.splat.log.AppLogger;
+
/**
* DTO transformer used by BeanHelper.
*
/**
* The logger for the service.
*/
- public final static AppLogger logger = AppLogger
+ public final static AppLogger LOG = AppLogger
.getLogger(DTOTransformer.class);
/**
* the bean transformer.
*/
- private final BeanTransformerSpi _beanTransformer;
+ private final transient BeanTransformerSpi _beanTransformer;
/**
* Constructor.
public <T> boolean isTransformable(final Object from,
final Class<T> toClass, final net.sf.beanlib.PropertyInfo info) {
boolean ok = false;
- if (from != null) {
+ if (from == null) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("From: null; To: " + toClass.getSimpleName());
+ }
+ } else {
String fromName = from.getClass().getSimpleName();
String toName = toClass.getSimpleName();
- if (logger.isDebugEnabled()) {
- logger.debug("From: " + fromName + "; To: " + toName);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("From: " + fromName + "; To: " + toName);
ok = (fromName.equals(toName + "DTO") || toName.equals(fromName
+ "DTO"));
}
- } else {
- if (logger.isDebugEnabled()) {
- logger.debug("From: null; To: " + toClass.getSimpleName());
- }
}
- if (logger.isDebugEnabled()) {
- logger.debug("Can transform from " + info.getFromBean() + "."
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Can transform from " + info.getFromBean() + "."
+ info.getPropertyName() + " to " + info.getToBean() + "."
+ info.getPropertyName() + ": " + ok);
}
*
* @see net.sf.beanlib.spi.Transformable#transform(java.lang.Object, java.lang.Class, net.sf.beanlib.PropertyInfo)
*/
+ @SuppressWarnings("unchecked")
public <T> T transform(final Object in, final Class<T> toClass,
final PropertyInfo info) {
- if (logger.isDebugEnabled()) {
- logger.debug("Transform " + in.getClass().getSimpleName() + ": "
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Transform " + in.getClass().getSimpleName() + ": "
+ in.toString() + " to " + toClass.getSimpleName());
}
Map<Object, Object> cloneMap = _beanTransformer.getClonedMap();
Object clone = cloneMap.get(in);
- if (clone != null) {
- return (T) clone;
- }
-
- if (logger.isDebugEnabled()) {
- logger.debug("Copy bean from " + info.getFromBean() + "."
- + info.getPropertyName() + " to " + info.getToBean() + "."
- + info.getPropertyName());
+ if (clone == null) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Copy bean from " + info.getFromBean() + "."
+ + info.getPropertyName() + " to " + info.getToBean() + "."
+ + info.getPropertyName());
+ }
+ clone = BeanHelper.copyBean(in, toClass);
+ cloneMap.put(in, clone);
}
- clone = BeanHelper.copyBean(in, toClass);
- cloneMap.put(in, clone);
-
return (T) clone;
}
}