(no commit message)
[utils] / support / general / src / main / java / org / wamblee / persistence / PersistentFactory.java
index 944bd34aa3a028df0543626e86205f70bfb6fcbb..2f5bb7c20ee3486e69f4bc7fec5bde8311da7545 100644 (file)
@@ -26,6 +26,9 @@ import java.util.concurrent.ConcurrentHashMap;
 import javax.persistence.Id;
 import javax.persistence.Version;
 
+import org.wamblee.reflection.Accessor;
+import org.wamblee.reflection.FieldAccessor;
+import org.wamblee.reflection.PropertyAccessor;
 import org.wamblee.reflection.ReflectionUtils;
 
 /**
@@ -46,82 +49,6 @@ public class PersistentFactory {
      */
     private static Map<String, EntityAccessor> CACHE = new ConcurrentHashMap<String, EntityAccessor>();
 
-    public static interface Accessor<T> {
-        void set(Object aEntity, T aValue);
-
-        T get(Object aEntity);
-    }
-
-    static class FieldAccessor<T> implements Accessor<T> {
-        private Field field;
-
-        public FieldAccessor(Field aField) {
-            field = aField;
-            field.setAccessible(true);
-        }
-
-        @Override
-        public T get(Object aEntity) {
-            try {
-                T value = (T) field.get(aEntity);
-                return value;
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        }
-
-        @Override
-        public void set(Object aEntity, T aValue) {
-            try {
-                field.set(aEntity, aValue);
-            } catch (IllegalAccessException e) {
-                throw new RuntimeException(e.getMessage(), e);
-            }
-        }
-
-        public Field getField() {
-            return field;
-        }
-    }
-
-    static class PropertyAccessor<T> implements Accessor<T> {
-        private Method getter;
-        private Method setter;
-
-        public PropertyAccessor(Method aGetter, Method aSetter) {
-            getter = aGetter;
-            setter = aSetter;
-            getter.setAccessible(true);
-            setter.setAccessible(true);
-        }
-
-        @Override
-        public T get(Object aEntity) {
-            try {
-                return (T) getter.invoke(aEntity);
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        }
-
-        @Override
-        public void set(Object aEntity, T aValue) {
-            try {
-                setter.invoke(aEntity, aValue);
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        }
-
-        public Method getGetter() {
-            return getter;
-        }
-
-        public Method getSetter() {
-            return setter;
-        }
-    }
-
     static class EntityAccessor {
         private Accessor pk;
         private Accessor version;