/** * {@inheritDoc} */ @Override public int hashCode() { final int prime = 31; int result = 1; result = (prime * result) + ((eventDetails == null) ? 0 : eventDetails.hashCode()); result = (prime * result) + ((eventType == null) ? 0 : eventType.hashCode()); result = (prime * result) + ((type == null) ? 0 : type.hashCode()); return result; }
/** * {@inheritDoc} */ @Override public void informNodeChange(NodeEvent event) { if (NodeEventDetails.INITIALIZED.equals(event.getEventDetails())) { // if it's initialized type index it cause he have hash ImmutableType type = event.getType(); for (String hash : type.getHashes()) { storage.put(hash, type); } } else if (NodeEventType.CHANGED.equals(event.getEventType()) && NodeEventDetails.HASH_ADDED.equals(event.getEventDetails())) { // otherwise only index it if there is new hash available ImmutableType type = event.getType(); for (String hash : type.getHashes()) { if (!storage.containsKey(hash)) { storage.put(hash, type); } } } else if (NodeEventType.REMOVED.equals(event.getEventType())) { // if removed kill all links ImmutableType type = event.getType(); for (String hash : type.getHashes()) { storage.remove(hash); } } }