/*
* EuroCarbDB, a framework for carbohydrate bioinformatics
*
* Copyright (c) 2006-2009, Eurocarb project, or third-party contributors as
* indicated by the @author tags or express copyright attribution
* statements applied by the authors.
*
* This copyrighted material is made available to anyone wishing to use, modify,
* copy, or redistribute it subject to the terms and conditions of the GNU
* Lesser General Public License, as published by the Free Software Foundation.
* A copy of this license accompanies this distribution in the file LICENSE.txt.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
* for more details.
*
* Last commit: $Rev: 1980 $ by $Author: khaleefah $ on $Date:: 2010-08-26 #$
*/
package org.eurocarbdb.dataaccess.ms;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import java.util.Collections;
import java.io.Serializable;
// 3rd party imports
import org.apache.log4j.Logger;
import org.hibernate.Query;
import org.hibernate.Criteria;
import org.hibernate.criterion.*;
// eurocarb imports
import org.eurocarbdb.dataaccess.Eurocarb;
import org.eurocarbdb.dataaccess.Contributed;
import org.eurocarbdb.dataaccess.BasicEurocarbObject;
import org.eurocarbdb.dataaccess.core.Evidence;
import org.eurocarbdb.dataaccess.core.Contributor;
// static imports
import static java.util.Collections.emptyList;
import static java.util.Collections.emptySet;
import static org.eurocarbdb.dataaccess.Eurocarb.getEntityManager;
//EuroCarb imports
/**
* eurocarb_devel.Acquisition
* 06/10/2010 00:59:00
*
*/
public class Acquisition extends Evidence implements Serializable{
static final Logger log = Logger.getLogger( Acquisition.class );
// private Integer acquisitionId;
private Device device;
// private Integer evidenceId;
private String filename;
private String filetype;
private Date dateObtained;
private Double contributorQuality;
private Set<org.eurocarbdb.dataaccess.ms.AcquisitionToPersubstitution> AcquisitionToPersubstitutions = new HashSet<org.eurocarbdb.dataaccess.ms.AcquisitionToPersubstitution>();
private Set<org.eurocarbdb.dataaccess.ms.Scan> scans = new HashSet<org.eurocarbdb.dataaccess.ms.Scan>();
private Set<org.eurocarbdb.dataaccess.ms.DeviceSettings> deviceSettingses = new HashSet<org.eurocarbdb.dataaccess.ms.DeviceSettings>();
public Acquisition() {
setEvidenceType( Evidence.Type.MS );
}
public Acquisition(Device device,String filename, String filetype, Date dateObtained, Double contributorQuality) {
this();
this.device = device;
this.filename = filename;
this.filetype = filetype;
this.dateObtained = dateObtained;
this.contributorQuality = contributorQuality;
}
public Acquisition(Integer acquisitionId, Device device, Integer evidenceId, String filename, String filetype, Date dateObtained, Double contributorQuality, Set<org.eurocarbdb.dataaccess.ms.AcquisitionToPersubstitution> AcquisitionToPersubstitutions, Set<org.eurocarbdb.dataaccess.ms.Scan> scans, Set<org.eurocarbdb.dataaccess.ms.DeviceSettings> deviceSettingses) {
// this.acquisitionId = acquisitionId;
this.device = device;
// this.evidenceId = evidenceId;
this.filename = filename;
this.filetype = filetype;
this.dateObtained = dateObtained;
this.contributorQuality = contributorQuality;
this.AcquisitionToPersubstitutions = AcquisitionToPersubstitutions;
this.scans = scans;
this.deviceSettingses = deviceSettingses;
}
public Integer getAcquisitionId() {
return getEvidenceId();
}
public void setAquesitionEvidenceId(Integer id)
{
this.setEvidenceId(id);
}
public Device getDevice() {
return device;
}
public void setDevice(Device device) {
this.device = device;
}
/* public Integer getEvidenceId() {
return evidenceId;
}
public void setEvidenceId(Integer evidenceId) {
this.evidenceId = evidenceId;
}*/
/**
* Always returns {@link Evidence.Type.MS}.
* @see Evidence.Type
*/
public Type getEvidenceType()
{
return Evidence.Type.MS;
}
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public String getFiletype() {
return filetype;
}
public void setFiletype(String filetype) {
this.filetype = filetype;
}
public Date getDateObtained() {
return dateObtained;
}
public void setDateObtained(Date dateObtained) {
this.dateObtained = dateObtained;
}
public Double getContributorQuality() {
return contributorQuality;
}
public void setContributorQuality(Double contributorQuality) {
this.contributorQuality = contributorQuality;
}
public Set<org.eurocarbdb.dataaccess.ms.AcquisitionToPersubstitution> getAcquisitionToPersubstitutions() {
return AcquisitionToPersubstitutions;
}
public void setAcquisitionToPersubstitutions(Set<org.eurocarbdb.dataaccess.ms.AcquisitionToPersubstitution> AcquisitionToPersubstitutions) {
this.AcquisitionToPersubstitutions = AcquisitionToPersubstitutions;
}
public Set<org.eurocarbdb.dataaccess.ms.Scan> getScans() {
return scans;
}
public void setScans(Set<org.eurocarbdb.dataaccess.ms.Scan> scans) {
this.scans = scans;
}
public Set<org.eurocarbdb.dataaccess.ms.DeviceSettings> getDeviceSettingses() {
return deviceSettingses;
}
public void setDeviceSettingses(Set<org.eurocarbdb.dataaccess.ms.DeviceSettings> deviceSettingses) {
this.deviceSettingses = deviceSettingses;
}
//Quiries
//Author: Khalifeh Al-Jadda
/**
Get top level scans
*/
public Set<Scan> getRootScans()
{
HashSet<Scan> ret = new HashSet<Scan>();
for( Scan s : getScans() )
{
if( s.getParentScan() == null )
ret.add(s);
}
return ret;
}
public static Acquisition lookupById( int id )
{
log.debug("looking up acquisition by acquisitionId");
Object i = getEntityManager()
.getQuery( "org.eurocarbdb.dataaccess.ms.Acquisition.BY_ID" )
.setParameter("acquisitionId", id )
.uniqueResult();
assert i instanceof Acquisition;
return (Acquisition) i;
}
@SuppressWarnings("unchecked")
public static List<Acquisition> ownedAcquisitions()
{
Contributor c = Contributor.getCurrentContributor();
List <Acquisition> list = (List<Acquisition>)getEntityManager()
.getQuery("org.eurocarbdb.dataaccess.ms.Acquisition.OwnedAcquisitions")
.setParameter("contributorName",c.getContributorName())
.list();
if(list == null)
return emptyList();
return list;
}
@SuppressWarnings("unchecked")
public static List<Acquisition> othersAcquisitions()
{
Contributor c = Contributor.getCurrentContributor();
List <Acquisition>list = (List<Acquisition>)getEntityManager()
.getQuery("org.eurocarbdb.dataaccess.ms.Acquisition.OthersAcquisitions")
.setParameter("contributorName",c.getContributorName())
.list();
if(list == null)
return emptyList();
return list;
}
}