/** * Call after invoking {@link Properties#setProperty} on super. * * @param ret the return value from the super's method * @param before the return value from {@link #beforeSetProperty} * @return the value to return from {@link Properties#setProperty} */ public static Object afterSetProperty(ProxyMap map, String key, String value, Object ret, boolean before) { return afterPut(map, key, value, ret, before); }
/** * Call before invoking {@link Properties#setProperty} on super. */ public static boolean beforeSetProperty(ProxyMap map, String key, String value) { return beforePut(map, key, value); }
/** * Call before invoking {@link Properties#load} on super. */ public static void beforeLoad(ProxyMap map, InputStream in) { dirty(map, true); }
/** * Call before invoking {@link Map#put} on super. */ public static boolean beforePut(ProxyMap map, Object key, Object value) { assertAllowedType(key, map.getKeyType()); assertAllowedType(value, map.getValueType()); dirty(map, false); return map.containsKey(key); }
/** * Call before invoking {@link Map#clear} on super. */ public static void beforeClear(ProxyMap map) { dirty(map, true); Map.Entry entry; for (Iterator itr = map.entrySet().iterator(); itr.hasNext();) { entry = (Map.Entry) itr.next(); removed(map, entry.getKey(), true); removed(map, entry.getValue(), false); } }
/** * Call after invoking {@link Map#remove} on super. * * @param ret the return value from the super's method * @param before the return value from {@link #beforeRemove} * @return the value to return from {@link Map#remove} */ public static Object afterRemove(ProxyMap map, Object key, Object ret, boolean before) { if (before) { if (map.getChangeTracker() != null) ((MapChangeTracker) map.getChangeTracker()).removed(key, ret); removed(map, key, true); removed(map, ret, false); } return ret; }
/** * Call before invoking {@link Map#get} on super. */ public static boolean beforeGet(ProxyMap map, Object key) { assertAllowedType(key, map.getKeyType()); // Java 8 solution/workaround due to containsKey() calling get!=null, which could cause infinite loop return map.keySet().contains(key); }
/** * Call before invoking {@link Map#put} on super. */ public static boolean beforePut(ProxyMap map, Object key, Object value) { assertAllowedType(key, map.getKeyType()); assertAllowedType(value, map.getValueType()); dirty(map, false); return map.containsKey(key); }
/** * Call before invoking {@link Map#clear} on super. */ public static void beforeClear(ProxyMap map) { dirty(map, true); Map.Entry entry; for (Iterator itr = map.entrySet().iterator(); itr.hasNext();) { entry = (Map.Entry) itr.next(); removed(map, entry.getKey(), true); removed(map, entry.getValue(), false); } }
/** * Call after invoking {@link Map#remove} on super. * * @param ret the return value from the super's method * @param before the return value from {@link #beforeRemove} * @return the value to return from {@link Map#remove} */ public static Object afterRemove(ProxyMap map, Object key, Object ret, boolean before) { if (before) { if (map.getChangeTracker() != null) ((MapChangeTracker) map.getChangeTracker()).removed(key, ret); removed(map, key, true); removed(map, ret, false); } return ret; }
/** * Call before invoking {@link Map#get} on super. */ public static boolean beforeGet(ProxyMap map, Object key) { assertAllowedType(key, map.getKeyType()); // Java 8 solution/workaround due to containsKey() calling get!=null, which could cause infinite loop return map.keySet().contains(key); }
/** * Call before invoking {@link Map#put} on super. */ public static boolean beforePut(ProxyMap map, Object key, Object value) { assertAllowedType(key, map.getKeyType()); assertAllowedType(value, map.getValueType()); dirty(map, false); return map.containsKey(key); }
/** * Call before invoking {@link Map#clear} on super. */ public static void beforeClear(ProxyMap map) { dirty(map, true); Map.Entry entry; for (Iterator itr = map.entrySet().iterator(); itr.hasNext();) { entry = (Map.Entry) itr.next(); removed(map, entry.getKey(), true); removed(map, entry.getValue(), false); } }
/** * Call before invoking {@link Properties#loadXML} on super. */ public static void beforeLoadFromXML(ProxyMap map, InputStream in) { dirty(map, true); }
/** * Call after invoking {@link Map#remove} on super. * * @param ret the return value from the super's method * @param before the return value from {@link #beforeRemove} * @return the value to return from {@link Map#remove} */ public static Object afterRemove(ProxyMap map, Object key, Object ret, boolean before) { if (before) { if (map.getChangeTracker() != null) ((MapChangeTracker) map.getChangeTracker()).removed(key, ret); removed(map, key, true); removed(map, ret, false); } return ret; }
/** * Call before invoking {@link Properties#setProperty} on super. */ public static boolean beforeSetProperty(ProxyMap map, String key, String value) { return beforePut(map, key, value); }
/** * Call after invoking {@link Properties#setProperty} on super. * * @param ret the return value from the super's method * @param before the return value from {@link #beforeSetProperty} * @return the value to return from {@link Properties#setProperty} */ public static Object afterSetProperty(ProxyMap map, String key, String value, Object ret, boolean before) { return afterPut(map, key, value, ret, before); }
/** * Call before invoking {@link Map#get} on super. */ public static boolean beforeGet(ProxyMap map, Object key) { assertAllowedType(key, map.getKeyType()); // Java 8 solution/workaround due to containsKey() calling get!=null, which could cause infinite loop return map.keySet().contains(key); }
/** * Call before invoking {@link Map#put} on super. */ public static boolean beforePut(ProxyMap map, Object key, Object value) { assertAllowedType(key, map.getKeyType()); assertAllowedType(value, map.getValueType()); dirty(map, false); return map.containsKey(key); }
/** * Call before invoking {@link Map#clear} on super. */ public static void beforeClear(ProxyMap map) { dirty(map, true); Map.Entry entry; for (Iterator itr = map.entrySet().iterator(); itr.hasNext();) { entry = (Map.Entry) itr.next(); removed(map, entry.getKey(), true); removed(map, entry.getValue(), false); } }