All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ru.taskurotta.service.dependency.links.Modification Maven / Gradle / Ivy

package ru.taskurotta.service.dependency.links;

import java.io.Serializable;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.UUID;

/**
 * This is Not thread safe implementation.
 * 

* User: romario * Date: 4/5/13 * Time: 10:44 AM */ public class Modification implements Serializable { private UUID completedItem; private UUID waitForAfterRelease; private Map> links; private Set newItems; public Modification() { } public Modification(UUID completedItem, UUID waitForAfterRelease, Map> links, Set newItems) { this.completedItem = completedItem; this.waitForAfterRelease = waitForAfterRelease; this.links = links; this.newItems = newItems; } public void linkItem(UUID thisItem, UUID... waitForItems) { if (links == null) { links = new HashMap<>(); } Set knownWaitForItems = links.get(thisItem); if (knownWaitForItems == null) { knownWaitForItems = new HashSet<>(); links.put(thisItem, knownWaitForItems); } Collections.addAll(knownWaitForItems, waitForItems); } public UUID getCompletedItem() { return completedItem; } public void setCompletedItem(UUID completedItem) { this.completedItem = completedItem; } public Map> getLinks() { return links; } public Set getNewItems() { return newItems; } public void addNewItem(UUID newItem) { if (newItems == null) { newItems = new HashSet<>(); } newItems.add(newItem); } public void setNewItems(Set newItems) { this.newItems = newItems; } public void setLinks(Map> links) { this.links = links; } public UUID getWaitForAfterRelease() { return waitForAfterRelease; } public void setWaitForAfterRelease(UUID waitForAfterRelease) { this.waitForAfterRelease = waitForAfterRelease; } @Override public String toString() { return "Modification{" + "completedItem=" + completedItem + ", waitForAfterRelease=" + waitForAfterRelease + ", links=" + links + ", newItems=" + newItems + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Modification that = (Modification) o; if (completedItem != null ? !completedItem.equals(that.completedItem) : that.completedItem != null) return false; if (links != null ? !links.equals(that.links) : that.links != null) return false; if (newItems != null ? !newItems.equals(that.newItems) : that.newItems != null) return false; if (waitForAfterRelease != null ? !waitForAfterRelease.equals(that.waitForAfterRelease) : that.waitForAfterRelease != null) { return false; } return true; } @Override public int hashCode() { int result = completedItem != null ? completedItem.hashCode() : 0; result = 31 * result + (waitForAfterRelease != null ? waitForAfterRelease.hashCode() : 0); result = 31 * result + (links != null ? links.hashCode() : 0); result = 31 * result + (newItems != null ? newItems.hashCode() : 0); return result; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy