X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=support%2Fgeneral%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fpersistence%2FPersistentFactory.java;h=2f5bb7c20ee3486e69f4bc7fec5bde8311da7545;hb=a3237c2386d04f83b60e9897ccfefc79fb233f6f;hp=944bd34aa3a028df0543626e86205f70bfb6fcbb;hpb=9e31cb496862c1fb2256332e0e12f03cfcabae8d;p=utils diff --git a/support/general/src/main/java/org/wamblee/persistence/PersistentFactory.java b/support/general/src/main/java/org/wamblee/persistence/PersistentFactory.java index 944bd34a..2f5bb7c2 100644 --- a/support/general/src/main/java/org/wamblee/persistence/PersistentFactory.java +++ b/support/general/src/main/java/org/wamblee/persistence/PersistentFactory.java @@ -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 CACHE = new ConcurrentHashMap(); - public static interface Accessor { - void set(Object aEntity, T aValue); - - T get(Object aEntity); - } - - static class FieldAccessor implements Accessor { - 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 implements Accessor { - 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;