Newer
Older
/*******************************************************************************
* Copyright (c) 2016 Olivier Langella <Olivier.Langella@moulon.inra.fr>.
*
* This file is part of XTPcpp.
*
* XTPcpp is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* XTPcpp 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with XTPcpp. If not, see <http://www.gnu.org/licenses/>.
*
* Contributors:
* Olivier Langella <Olivier.Langella@moulon.inra.fr> - initial API and implementation
******************************************************************************/
#include "identificationdatasource.h"
#include "identificationxtandemfile.h"
#include <pappsomspp/pappsoexception.h>
IdentificationDataSource::MapIdentificationDataSources IdentificationDataSource::_map_identification_data_sources = []
return ret;
}();
IdentificationDataSource::IdentificationDataSource(const QString resource_name)
{
_resource_name = resource_name;
}
IdentificationDataSource::IdentificationDataSource(const IdentificationDataSource& other)
{
_ms_run_sp = other._ms_run_sp;
_resource_name = other._resource_name;
}
IdentificationDataSource::~IdentificationDataSource()
{
}
bool IdentificationDataSource::operator==(const IdentificationDataSource& other) const
{
}
void IdentificationDataSource::clear() {
_map_identification_data_sources.clear();
}
IdentificationDataSource * IdentificationDataSource::getInstance(const QString & location) {
std::map< QString, IdentificationDataSource* >::iterator it = IdentificationDataSource::_map_identification_data_sources.find(location);
if (it != IdentificationDataSource::_map_identification_data_sources.end()) {
return it->second;
}
else {
QFileInfo location_file(location);
QString ext = location_file.suffix();
//QString sample_name = location_file.baseName();
IdentificationXtandemFile * p_xtfile = new IdentificationXtandemFile(location_file);
_map_identification_data_sources.insert(std::pair< QString, IdentificationDataSource* >(location, p_xtfile));
_map_identification_data_sources.insert(std::pair< QString, IdentificationDataSource* >(location_file.absoluteFilePath(), p_xtfile));
return p_xtfile;
throw pappso::PappsoException(QObject::tr("Identification resource %1 not recognized").arg(location));
const QString & IdentificationDataSource::getResourceName () const {
return _resource_name;
}
const QString IdentificationDataSource::getSampleName () const {
QFileInfo file(_ms_run_sp.get()->getFilename());
return file.baseName();
}
void IdentificationDataSource::setMsRunSp (pappso::MsRunIdSp ms_run_sp) {
_ms_run_sp = ms_run_sp;
}
pappso::MsRunIdSp IdentificationDataSource::getMsRunSp () const {
return (_ms_run_sp);
}
pappso::SpectrumSp IdentificationDataSource::getSpectrumSp(unsigned int scan_number) const {
pappso::SpectrumSp spectrum_sp = SpectrumStore::getSpectrumSpFromMsRunIdSp(_ms_run_sp, scan_number);
return spectrum_sp;
}