/*
* 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.dao.service;
import org.akaza.openclinica.bean.core.EntityBean;
import org.akaza.openclinica.bean.managestudy.StudyBean;
import org.akaza.openclinica.bean.service.StudyParameter;
import org.akaza.openclinica.bean.service.StudyParameterValueBean;
import org.akaza.openclinica.bean.service.StudyParamsConfig;
import org.akaza.openclinica.dao.core.AuditableEntityDAO;
import org.akaza.openclinica.dao.core.DAODigester;
import org.akaza.openclinica.dao.core.SQLFactory;
import org.akaza.openclinica.dao.core.TypeNames;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import javax.sql.DataSource;
public class StudyParameterValueDAO extends AuditableEntityDAO {
@Override
protected void setDigesterName() {
digesterName = SQLFactory.getInstance().DAO_STUDY_PARAMETER;
}
public StudyParameterValueDAO(DataSource ds) {
super(ds);
}
public StudyParameterValueDAO(DataSource ds, DAODigester digester) {
super(ds);
this.digester = digester;
}
public Collection findAll() {
ArrayList al = new ArrayList();
return al;
}
public Collection findAll(String strOrderByColumn, boolean blnAscendingSort, String strSearchPhrase) {
ArrayList al = new ArrayList();
return al;
}
public EntityBean create(EntityBean eb) {
StudyParameterValueBean spvb = (StudyParameterValueBean) eb;
HashMap variables = new HashMap();
variables.put(new Integer(1), new Integer(spvb.getStudyId()));
variables.put(new Integer(2), spvb.getValue());
variables.put(new Integer(3), spvb.getParameter());
this.execute(digester.getQuery("create"), variables);
return spvb;
}
public EntityBean update(EntityBean eb) {
StudyParameterValueBean spvb = (StudyParameterValueBean) eb;
HashMap variables = new HashMap();
variables.put(new Integer(1), spvb.getValue());
variables.put(new Integer(2), new Integer(spvb.getStudyId()));
variables.put(new Integer(3), spvb.getParameter());
this.execute(digester.getQuery("update"), variables);
return spvb;
}
public Object getEntityFromHashMap(HashMap hm) {
// study_id numeric,
// value varchar(50),
// study_parameter_id int4,
StudyParameterValueBean spvb = new StudyParameterValueBean();
// super.setEntityAuditInformation(spvb, hm);
spvb.setValue((String) hm.get("value"));
spvb.setStudyId(((Integer) hm.get("study_id")).intValue());
spvb.setId(((Integer) hm.get("study_parameter_value_id")).intValue());
// YW 10-15-2007 <<
spvb.setParameter((String) hm.get("parameter"));
// YW >>
return spvb;
}
public Object getParameterEntityFromHashMap(HashMap hm) {
// study_parameter_id serial NOT NULL,
// handle varchar(50),
// name varchar(50),
// description varchar(255),
// default_value varchar(50),
// inheritable bool DEFAULT true,
// overridable bool,
StudyParameter sp = new StudyParameter();
// super.setEntityAuditInformation(spvb, hm);
sp.setId(((Integer) hm.get("study_parameter_id")).intValue());
sp.setHandle((String) hm.get("handle"));
sp.setName((String) hm.get("name"));
sp.setDescription((String) hm.get("description"));
sp.setDefaultValue((String) hm.get("default_value"));
sp.setInheritable(((Boolean) hm.get("inheritable")).booleanValue());
sp.setOverridable(((Boolean) hm.get("overridable")).booleanValue());
return sp;
}
@Override
public void setTypesExpected() {
// study_parameter_value_id serial NOT NULL,
// study_id int4,
// value varchar(50),
// parameter varchar(50),
this.unsetTypeExpected();
this.setTypeExpected(1, TypeNames.INT);
this.setTypeExpected(2, TypeNames.INT);
this.setTypeExpected(3, TypeNames.STRING);
this.setTypeExpected(4, TypeNames.STRING);
}
public void setTypesExpectedForParameter() {
// study_parameter_id serial NOT NULL,
// handle varchar(50),
// name varchar(50),
// description varchar(255),
// default_value varchar(50),
// inheritable bool DEFAULT true,
// overridable bool,
this.unsetTypeExpected();
this.setTypeExpected(1, TypeNames.INT);
this.setTypeExpected(2, TypeNames.STRING);
this.setTypeExpected(3, TypeNames.STRING);
this.setTypeExpected(4, TypeNames.STRING);
this.setTypeExpected(5, TypeNames.STRING);
this.setTypeExpected(6, TypeNames.BOOL);
this.setTypeExpected(7, TypeNames.BOOL);
}
public StudyParameterValueBean findByHandleAndStudy(int studyId, String handle) {
StudyParameterValueBean spvb = new StudyParameterValueBean();
this.setTypesExpected();
HashMap variables = new HashMap();
variables.put(new Integer(1), new Integer(studyId));
variables.put(new Integer(2), handle);
String sql = digester.getQuery("findByStudyAndHandle");
ArrayList alist = this.select(sql, variables);
Iterator it = alist.iterator();
if (it.hasNext()) {
spvb = (StudyParameterValueBean) this.getEntityFromHashMap((HashMap) it.next());
}
return spvb;
}
public StudyParameter findParameterByHandle(String handle) {
StudyParameter sp = new StudyParameter();
this.setTypesExpected();
HashMap variables = new HashMap();
variables.put(new Integer(1), handle);
String sql = digester.getQuery("findParameterByHandle");
ArrayList alist = this.select(sql, variables);
Iterator it = alist.iterator();
if (it.hasNext()) {
sp = (StudyParameter) this.getEntityFromHashMap((HashMap) it.next());
}
return sp;
}
public boolean setParameterValue(int studyId, String parameterHandle, String value) {
return false;
}
public ArrayList findAllParameters() {
this.setTypesExpectedForParameter();
ArrayList alist = this.select(digester.getQuery("findAllParameters"));
ArrayList al = new ArrayList();
Iterator it = alist.iterator();
while (it.hasNext()) {
StudyParameter eb = (StudyParameter) this.getParameterEntityFromHashMap((HashMap) it.next());
al.add(eb);
}
return al;
}
public ArrayList findAllParameterValuesByStudy(StudyBean study) {
this.setTypesExpected();
HashMap variables = new HashMap();
variables.put(new Integer(1), new Integer(study.getId()));
ArrayList alist = this.select(digester.getQuery("findAllParameterValuesByStudy"), variables);
ArrayList al = new ArrayList();
Iterator it = alist.iterator();
while (it.hasNext()) {
StudyParameterValueBean eb = (StudyParameterValueBean) this.getEntityFromHashMap((HashMap) it.next());
al.add(eb);
}
return al;
}
public ArrayList findParamConfigByStudy(StudyBean study) {
this.unsetTypeExpected();
this.setTypeExpected(1, TypeNames.INT);
this.setTypeExpected(2, TypeNames.INT);
this.setTypeExpected(3, TypeNames.STRING);
this.setTypeExpected(4, TypeNames.STRING);
this.setTypeExpected(5, TypeNames.INT);
this.setTypeExpected(6, TypeNames.STRING);
this.setTypeExpected(7, TypeNames.STRING);
this.setTypeExpected(8, TypeNames.STRING);
this.setTypeExpected(9, TypeNames.STRING);
this.setTypeExpected(10, TypeNames.BOOL);
this.setTypeExpected(11, TypeNames.BOOL);
HashMap variables = new HashMap();
variables.put(new Integer(1), new Integer(study.getId()));
ArrayList alist = this.select(digester.getQuery("findParamConfigByStudy"), variables);
ArrayList al = new ArrayList();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
StudyParameterValueBean spvb = new StudyParameterValueBean();
spvb.setValue((String) hm.get("value"));
spvb.setStudyId(((Integer) hm.get("study_id")).intValue());
spvb.setId(((Integer) hm.get("study_parameter_value_id")).intValue());
StudyParameter sp = new StudyParameter();
sp.setId(((Integer) hm.get("study_parameter_id")).intValue());
sp.setHandle((String) hm.get("handle"));
sp.setName((String) hm.get("name"));
sp.setDescription((String) hm.get("description"));
sp.setDefaultValue((String) hm.get("default_value"));
sp.setInheritable(((Boolean) hm.get("inheritable")).booleanValue());
sp.setOverridable(((Boolean) hm.get("overridable")).booleanValue());
StudyParamsConfig config = new StudyParamsConfig();
config.setParameter(sp);
config.setValue(spvb);
al.add(config);
}
return al;
}
public EntityBean findByPK(int ID) {
EntityBean eb = new StudyParameterValueBean();
return eb;
}
public Collection findAllByPermission(Object objCurrentUser, int intActionType, String strOrderByColumn, boolean blnAscendingSort, String strSearchPhrase) {
ArrayList al = new ArrayList();
return al;
}
public Collection findAllByPermission(Object objCurrentUser, int intActionType) {
ArrayList al = new ArrayList();
return al;
}
}