package org.ovirt.engine.core.aaa; import java.util.ArrayList; import java.util.List; import java.util.Objects; import org.ovirt.engine.core.common.businessentities.IVdcQueryable; public class DirectoryEntry implements IVdcQueryable { private static final long serialVersionUID = -5689096270467866486L; /** * Reference to the directory where this entry was originated. */ private String directoryName; // The values of the attributes: private String namespace; private String id; private String name; private String displayName; private DirectoryEntryStatus status; /** * The list of groups this entry belongs to. */ private List<DirectoryGroup> groups; public DirectoryEntry() { this.status = DirectoryEntryStatus.UNAVAILABLE; this.groups = new ArrayList<>(1); } public DirectoryEntry(String directoryName, String namespace, String id, String name, String displayName) { this(); this.directoryName = directoryName; this.namespace = namespace; this.id = id; this.name = name; this.displayName = displayName; } public String getNamespace() { return namespace; } public void setNamespace(String namespace) { this.namespace = namespace; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getDirectoryName() { return directoryName; } public void setDirectoryName(String directoryName) { this.directoryName = directoryName; } public String getName() { return name; } public String getDisplayName() { return displayName; } public void setDisplayName(String displayName) { this.displayName = displayName; } public void setName(String name) { this.name = name; } public DirectoryEntryStatus getStatus() { return status; } public void setStatus(DirectoryEntryStatus status) { this.status = status; } public List<DirectoryGroup> getGroups() { if (groups == null) { groups = new ArrayList<>(); } return groups; } public void setGroups(List<DirectoryGroup> groups) { this.groups = groups; } @Override public Object getQueryableId() { return id; } @Override public int hashCode() { return Objects.hash( id, name, status, directoryName ); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (!(obj instanceof DirectoryEntry)) { return false; } DirectoryEntry other = (DirectoryEntry) obj; return Objects.equals(id, other.id) && Objects.equals(name, other.name) && Objects.equals(status, other.status) && Objects.equals(directoryName, other.directoryName); } public String toString() { return name + "@" + directoryName; } }