package net.techreadiness.ui.task; import java.io.Serializable; import java.util.Arrays; import net.techreadiness.security.PermissionCode; public class Task implements Serializable { private static final long serialVersionUID = 1L; private String namespace; private String action; private String taskName; private PermissionCode[] permissionCodes; public Task(String namespace, String action, String taskName) { setNamespace(namespace); setAction(action); this.taskName = taskName; } public Task(String namespace, String action, String taskName, PermissionCode... permissionCodes) { this(namespace, action, taskName); setPermissionCodes(permissionCodes); } public String getTaskName() { return taskName; } public void setTaskName(String taskName) { this.taskName = taskName; } public void setPermissionCodes(PermissionCode... permissionCodes) { this.permissionCodes = Arrays.copyOf(permissionCodes, permissionCodes.length); } public String getTaskUrl() { return new StringBuilder().append(namespace).append("/").append(action).append(".action").toString(); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (action == null ? 0 : action.hashCode()); result = prime * result + (namespace == null ? 0 : namespace.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof Task)) { return false; } Task other = (Task) obj; if (action == null) { if (other.action != null) { return false; } } else if (!action.equals(other.action)) { return false; } if (namespace == null) { if (other.namespace != null) { return false; } } else if (!namespace.equals(other.namespace)) { return false; } return true; } public PermissionCode[] getPermissionCodes() { if (permissionCodes == null) { return null; } return Arrays.copyOf(permissionCodes, permissionCodes.length); } public String getNamespace() { return namespace; } public void setNamespace(String namespace) { this.namespace = namespace; } public String getAction() { return action; } public void setAction(String action) { this.action = action; } }