BeanMapPersist.java 906 B

123456789101112131415161718192021222324252627
  1. package in.ocsf.these.days.app.state;/* kpmy 20.02.2017 */
  2. import org.apache.commons.beanutils.BeanMap;
  3. import org.springframework.statemachine.StateMachineContext;
  4. import java.util.HashMap;
  5. import java.util.Map;
  6. public interface BeanMapPersist {
  7. default Map<String, Object> toMap(StateMachineContext context) throws Exception {
  8. Map<String, Object> data = new HashMap<>(new BeanMap(context));
  9. data.replace("class", ((Class) data.get("class")).getCanonicalName());
  10. return data;
  11. }
  12. default StateMachineContext fromMap(Map<String, Object> data) throws Exception {
  13. if (data != null) {
  14. data.replace("class", Class.forName((String) data.get("class")));
  15. BeanMap beanMap = new BeanMap();
  16. beanMap.putAll(data);
  17. return (StateMachineContext) beanMap.getBean();
  18. } else {
  19. return null;
  20. }
  21. }
  22. }