@Override
 public boolean onFlushDirty(
     Object entity,
     Serializable id,
     Object[] currentState,
     Object[] previousState,
     String[] propertyNames,
     Type[] types) {
   try {
     logger.info("onFlushDirty: Detected dirty object " + entity + " with id " + id);
     final int length = currentState.length;
     logger.info("onFlushDirty: Object Details are as below: ");
     for (int i = 0; i < length; i++) {
       logger.info(
           "onFlushDirty: propertyName : "
               + propertyNames[i]
               + " ,type :  "
               + types[i]
               + " , previous state : "
               + previousState[i]
               + " , current state : "
               + currentState[i]);
     }
     return tryToCastToCurrentObject(entity, cl, InterceptorOperations.UPDATE);
   } catch (CallbackException e) {
     logger.error(e.getMessage(), e);
   }
   return false; // as no change made to object here
 }