/* * 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.List; /** * @author ssachs */ public class ResponseType extends Term { public static final ResponseType INVALID = new ResponseType(0, "invalid"); public static final ResponseType TEXT = new ResponseType(1, "text"); public static final ResponseType TEXTAREA = new ResponseType(2, "textarea"); public static final ResponseType CHECKBOX = new ResponseType(3, "checkbox"); public static final ResponseType FILE = new ResponseType(4, "file"); public static final ResponseType RADIO = new ResponseType(5, "radio"); public static final ResponseType SELECT = new ResponseType(6, "single-select"); public static final ResponseType SELECTMULTI = new ResponseType(7, "multi-select"); public static final ResponseType CALCULATION = new ResponseType(8, "calculation"); public static final ResponseType GROUP_CALCULATION = new ResponseType(9, "group-calculation"); public static final ResponseType INSTANT_CALCULATION = new ResponseType(10, "instant-calculation"); // public static final ResponseType CODING = new ResponseType(10, "text(non-editable)");// added 03/2009, tbh // changed 03/09, from 'coding' to 'text(non-editable)' to accept spreadsheet changes private static final ResponseType[] members = { TEXT, TEXTAREA, CHECKBOX, FILE, RADIO, SELECT, SELECTMULTI, CALCULATION, GROUP_CALCULATION, INSTANT_CALCULATION};// , CODING }; public static final List list = Arrays.asList(members); private ResponseType(int id, String name) { super(id, name); } private ResponseType() { } public static boolean contains(int id) { return Term.contains(id, list); } public static ResponseType get(int id) { Term t = Term.get(id, list); if (!t.isActive()) { return TEXT; } else { return (ResponseType) t; } } public static boolean findByName(String name) { for (int i = 0; i < list.size(); i++) { ResponseType temp = (ResponseType) list.get(i); if (temp.getName().equals(name)) { return true; } } return false; } public static ResponseType getByName(String name) { /* * BWP, 08/26/07: made the method more protective and robust, so that it * handles problems with parameters such as "text " (note the space * within the String). */ if (name == null || name.length() < 1) { return ResponseType.INVALID; } name = name.trim(); for (int i = 0; i < list.size(); i++) { ResponseType temp = (ResponseType) list.get(i); if (temp.getName().equalsIgnoreCase(name)) { return temp; } } return ResponseType.INVALID; } @Override public String getName() { return name; } }