/*
* OpenClinica is distributed under the
* GNU Lesser General Public License (GNU LGPL).
* For details see: http://www.openclinica.org/license
* copyright 2003-2005 Akaza Research
*/
package org.akaza.openclinica.bean.core;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import org.akaza.openclinica.i18n.util.ResourceBundleProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* A type-safe enumeration class for resolution status of discrepancy notes
*
* @author Jun Xu
*
*/
// Internationalized name and description in Term.getName and
// Term.getDescription()
public class ResolutionStatus extends Term {
protected static final Logger logger = LoggerFactory.getLogger(ResolutionStatus.class.getName());
public static final ResolutionStatus INVALID = new ResolutionStatus(0, "invalid", null, null);
public static final ResolutionStatus OPEN = new ResolutionStatus(1, "New", null, "images/icon_Note.gif");
public static final ResolutionStatus UPDATED = new ResolutionStatus(2, "Updated", null, "images/icon_flagYellow.gif");
public static final ResolutionStatus RESOLVED = new ResolutionStatus(3, "Resolution_Proposed", null, "images/icon_flagGreen.gif");
public static final ResolutionStatus CLOSED = new ResolutionStatus(4, "Closed", null, "images/icon_flagBlack.gif");
public static final ResolutionStatus NOT_APPLICABLE = new ResolutionStatus(5, "Not_Applicable", null, "images/icon_flagWhite.gif");
private String iconFilePath;
public boolean isInvalid() {
return this == ResolutionStatus.INVALID;
}
public boolean isOpen() {
return this == ResolutionStatus.OPEN;
}
public boolean isClosed() {
return this == ResolutionStatus.CLOSED;
}
public boolean isUpdated() {
return this == ResolutionStatus.UPDATED;
}
public boolean isResolved() {
return this == ResolutionStatus.RESOLVED;
}
public boolean isNotApplicable() {
return this == ResolutionStatus.NOT_APPLICABLE;
}
private static final ResolutionStatus[] members = { OPEN, UPDATED, RESOLVED, CLOSED, NOT_APPLICABLE };
public static ResolutionStatus[] getMembers() {
return members;
}
public static final List<ResolutionStatus> list = Arrays.asList(members);
private List privileges;
private ResolutionStatus(int id, String name, Privilege[] myPrivs, String path) {
super(id, name);
this.iconFilePath = path;
}
private ResolutionStatus() {
}
public static boolean contains(int id) {
return Term.contains(id, list);
}
public static ResolutionStatus get(int id) {
return (ResolutionStatus) Term.get(id, list);
}
public static ResolutionStatus getByName(String name) {
for (int i = 0; i < list.size(); i++) {
ResolutionStatus temp = list.get(i);
if (temp.getName().equals(name)) {
return temp;
}
}
return INVALID;
}
public boolean hasPrivilege(Privilege p) {
Iterator it = privileges.iterator();
while (it.hasNext()) {
Privilege myPriv = (Privilege) it.next();
if (myPriv.equals(p)) {
return true;
}
}
return false;
}
public String getIconFilePath() {
return iconFilePath;
}
public void setIconFilePath(String iconFilePath) {
this.iconFilePath = iconFilePath;
}
public static void main(String[] args) {
ResourceBundleProvider.updateLocale(new Locale("en"));
ResolutionStatus test = new ResolutionStatus(1, "New", null, null);
}
}