private void triggerOnAttached(I item, P parasite) { triggerOnAttached(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); } }
/** * Attaches a parasite at a location, notifying listeners of the * {@link Listener#onAttached(Object, Collection) attachment} event. * * @param location * @param parasite */ public void attachParasite(L location, P parasite) { // Does key point to something that exists yet? I item = locationResolver.get(location); if (item != null) { put(attached, item, parasite); } else { put(unattached, location, parasite); } triggerOnAttached(item, parasite); }