/*
* 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.logic.odmExport;
import java.util.Iterator;
import java.util.LinkedHashMap;
import javax.sql.DataSource;
import org.akaza.openclinica.bean.extract.DatasetBean;
import org.akaza.openclinica.bean.managestudy.StudyBean;
import org.akaza.openclinica.bean.odmbeans.OdmAdminDataBean;
import org.akaza.openclinica.job.JobTerminationMonitor;
/**
* Populate ODM AdminData Element for a ODM XML file. It supports:
* <ul>
* <li>ODM XML file contains only one ODM AdminData element. </li>
* <li>ODM XML file contains multiple AdminData elements - one parent study
* and its site(s). </li>
* </ul>
*
* @author ywang (March, 2010)
*/
public class AdminDataCollector extends OdmDataCollector {
private LinkedHashMap<String, OdmAdminDataBean> odmAdminDataMap;
public AdminDataCollector(DataSource ds, StudyBean currentStudy) {
super(ds, currentStudy);
this.odmAdminDataMap = new LinkedHashMap<String, OdmAdminDataBean>();
}
/**
*
* @param ds
* @param dataset
*/
public AdminDataCollector(DataSource ds, DatasetBean dataset, StudyBean currentStudy) {
super(ds, dataset, currentStudy);
this.odmAdminDataMap = new LinkedHashMap<String, OdmAdminDataBean>();
}
@Override
public void collectFileData() {
this.collectOdmAdminDataMap();
}
public void collectOdmAdminDataMap() {
Iterator<OdmStudyBase> it = this.getStudyBaseMap().values().iterator();
while (it.hasNext()) {
JobTerminationMonitor.check();
OdmStudyBase u = it.next();
AdminDataUnit adata = new AdminDataUnit(this.ds, this.dataset, this.getOdmbean(), u.getStudy(), this.getCategory());
adata.setCategory(this.getCategory());
adata.collectOdmAdminData();
odmAdminDataMap.put(u.getStudy().getOid(), adata.getOdmAdminData());
}
}
public LinkedHashMap<String, OdmAdminDataBean> getOdmAdminDataMap() {
return odmAdminDataMap;
}
public void setOdmClinicalDataMap(LinkedHashMap<String, OdmAdminDataBean> odmAdminDataMap) {
this.odmAdminDataMap = odmAdminDataMap;
}
}