package org.openecomp.sdc.versioning.types; import org.openecomp.sdc.versioning.dao.types.VersionStatus; import java.util.Date; import java.util.EnumMap; import java.util.HashMap; import java.util.Map; public class Item { private String id; private String type; private String name; private String owner; private ItemStatus status; private String description; private Map properties = new HashMap<>(); private Map versionStatusCounters = new EnumMap<>(VersionStatus.class); private Date creationTime; private Date modificationTime; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getOwner() { return owner; } public void setOwner(String owner) { this.owner = owner; } public ItemStatus getStatus() { return status; } public void setStatus(ItemStatus status) { this.status = status; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public Map getProperties() { return properties; } public void addProperty(String key, Object value) { properties.put(key, value); } public void setProperties(Map properties) { this.properties = properties; } public Map getVersionStatusCounters() { return versionStatusCounters; } public void setVersionStatusCounters(Map versionStatusCounters) { this.versionStatusCounters = versionStatusCounters; } public void addVersionStatus(VersionStatus versionStatus) { Integer counter = versionStatusCounters.get(versionStatus); versionStatusCounters .put(versionStatus, counter == null ? 1 : counter + 1); } public void removeVersionStatus(VersionStatus versionStatus) { Integer counter = versionStatusCounters.get(versionStatus); if (counter != null) { if (counter == 1) { versionStatusCounters.remove(versionStatus); } else { versionStatusCounters.put(versionStatus, counter - 1); } } } public Date getCreationTime() { return creationTime; } public void setCreationTime(Date creationTime) { this.creationTime = creationTime; } public Date getModificationTime() { return modificationTime; } public void setModificationTime(Date modificationTime) { this.modificationTime = modificationTime; } }