private void triggerOnDetached(I item, P parasite) { triggerOnDetached(item, Collections.singleton(parasite)); }
private void onEntryRemoved(L location, I item) { Collection<P> parasites = attached.remove(item); if (parasites != null) { unattached.put(location, parasites); triggerOnDetached(item, parasites); triggerOnAttached(null, parasites); } }
private void onEntryAdded(L location, I item) { Collection<P> parasites = unattached.remove(location); if (parasites != null) { attached.put(item, parasites); triggerOnDetached(null, parasites); triggerOnAttached(item, parasites); } }
/** * Detaches a parasite from a location, notifying listeners of the * {@link Listener#onDetached(Object, Collection) detachment} event. * * @param location * @param parasite */ public void detachParasite(L location, P parasite) { I item = locationResolver.get(location); if (item != null) { remove(attached, item, parasite); } else { remove(unattached, location, parasite); } triggerOnDetached(item, parasite); }