/** * Wrap given iterator in a proxy. */ public static ListIterator afterListIterator(final ProxyCollection coll, int idx, final ListIterator itr) { return afterListIterator(coll, itr); }
/** * Call after invoking {@link Vector#setElementAt} on super. */ public static Object afterSetElementAt(ProxyCollection coll, Object element, int index, Object replaced) { return afterSet(coll, index, element, replaced); }
/** * Call before invoking {@link Collection#remove} on super. */ public static void beforeRemove(ProxyCollection coll, Object o) { // Must only dirty the collection outside of a delayed load if (!isDirectAccess(coll)) { dirty(coll, false); } }
/** * Call before invoking {@link Collection#add(Object)} on super. */ public static void beforeAdd(ProxyCollection coll, Object value) { assertAllowedType(value, coll.getElementType()); // Must only dirty the collection outside of a delayed load if (!isDirectAccess(coll)) { dirty(coll, false); } }
@Override public boolean remove(Object paramObject) { if (_directAccess) { return super.remove(paramObject); } ProxyCollections.beforeRemove(this, paramObject); setDirectAccess(true); boolean bool = super.remove(paramObject); setDirectAccess(false); return ProxyCollections.afterRemove(this, paramObject, bool); }
/** * Call before invoking {@link List#add(int,Object)} on super. */ public static void beforeAdd(ProxyCollection coll, int index, Object value){ assertAllowedType(value, coll.getElementType()); dirty(coll, true); }
public Object set(int paramInt, Object paramObject) { if (_directAccess) { return super.set(paramInt, paramObject); } if (isDelayLoad()) { load(); } ProxyCollections.beforeSet(this, paramInt, paramObject); Object localObject = super.set(paramInt, paramObject); return ProxyCollections.afterSet(this, paramInt, paramObject, localObject); }
/** * Call before invoking {@link List#add(int,Object)} on super. */ public static void beforeAdd(ProxyCollection coll, int index, Object value){ assertAllowedType(value, coll.getElementType()); if (index == coll.size()) // optimize for adding to the end beforeAdd(coll, value); else dirty(coll, true); }
/** * Call before clearing vector. */ public static void beforeRemoveAllElements(ProxyCollection coll) { beforeClear(coll); }
/** * Call before invoking {@link Vector#setElementAt} on super. */ public static void beforeSetElementAt(ProxyCollection coll, Object element, int index) { beforeSet(coll, index, element); }
/** * Call before invoking {@link List#remove(int)} on super. */ public static void beforeRemove(ProxyCollection coll, int index) { dirty(coll, false); }
/** * Call after invoking {@link Vector#addElement(Object)} on super. */ public static void afterAddElement(ProxyCollection coll, Object value) { afterAdd(coll, value, true); }
/** * Call before invoking {@link Vector#insertElementAt(Object,int)} on super. */ public static void beforeInsertElementAt(ProxyCollection coll, Object value, int index) { beforeAdd(coll, index, value); }
/** * Call before invoking {@link Queue#remove} on super. */ public static void beforeRemove(ProxyCollection coll) { beforeRemove(coll, 0); }
/** * Call after invoking {@link LinkedList#removeLast} on super. */ public static Object afterRemoveLast(ProxyCollection coll, Object removed) { return afterRemove(coll, coll.size(), removed); }
@Override public Object remove(int paramInt) { if (_directAccess) { return super.remove(paramInt); } if (isDelayLoad()) { load(); } ProxyCollections.beforeRemove(this, paramInt); Object localObject = super.remove(paramInt); return ProxyCollections.afterRemove(this, paramInt, localObject); }
/** * Call before invoking {@link List#set} on super. */ public static void beforeSet(ProxyCollection coll, int index, Object element) { assertAllowedType(element, coll.getElementType()); dirty(coll, true); }
public Object set(int paramInt, Object paramObject) { if (_directAccess) { return super.set(paramInt, paramObject); } if (isDelayLoad()) { load(); } ProxyCollections.beforeSet(this, paramInt, paramObject); Object localObject = super.set(paramInt, paramObject); return ProxyCollections.afterSet(this, paramInt, paramObject, localObject); }