コード例 #1
0
void AMEXAFSScanConfiguration::dbLoadRegions(const QString &exafsRegionsString){
	if(exafsRegionsString.isEmpty())
		return;
	QStringList allRegions = exafsRegionsString.split("\n", QString::SkipEmptyParts);
	QStringList oneRegion;
	bool addRegionSuccess = false;

	for(int x = 0; x < allRegions.count(); x++){
		oneRegion = allRegions.at(x).split(",", QString::SkipEmptyParts);

		// Legacy Acquaman XAS settings (version 1.0)
		if (oneRegion.count() == 3)
			addRegionSuccess = addRegion(x, oneRegion.at(0).toDouble(), oneRegion.at(1).toDouble(), oneRegion.at(2).toDouble());
		// Another legacy Acquaman XAS settings version 1.1
		else if (oneRegion.at(0) == "xasVersion1.1"){

			addRegionSuccess = addRegion(x, oneRegion.at(1).toDouble(), oneRegion.at(2).toDouble(), oneRegion.at(3).toDouble(), oneRegion.at(6).toDouble());
			addRegionSuccess &= setRegionElasticStart(x, oneRegion.at(4).toInt() == 1 ? true : false);
			addRegionSuccess &= setRegionElasticEnd(x, oneRegion.at(5).toInt() == 1 ? true : false);
		}
		// Beginning of a more succinct usage of AMRegions.  Version 1.0
		else if (oneRegion.at(0) == "regionsVersion1.0"){

			addRegionSuccess = addRegion(x, oneRegion.at(1).toDouble(), oneRegion.at(2).toDouble(), oneRegion.at(3).toDouble(), oneRegion.at(6).toDouble());
			addRegionSuccess &= setRegionElasticStart(x, oneRegion.at(4).toInt() == 1 ? true : false);
			addRegionSuccess &= setRegionElasticEnd(x, oneRegion.at(5).toInt() == 1 ? true : false);
			addRegionSuccess &= setRegionUnits(x, oneRegion.at(7));
			addRegionSuccess &= setRegionTimeUnits(x, oneRegion.at(8));
		}

		else if (oneRegion.at(0) == "exafsVersion1.0"){

			addRegionSuccess = addRegion(x, oneRegion.at(4).toDouble(), oneRegion.at(5).toDouble(), oneRegion.at(6).toDouble(), oneRegion.at(9).toDouble());
			addRegionSuccess &= setRegionType(x, oneRegion.at(1) == "Energy" ? AMEXAFSRegion::Energy : AMEXAFSRegion::kSpace);
			addRegionSuccess &= setRegionIsRelative(x, oneRegion.at(3).toInt() == 1 ? true : false);
			addRegionSuccess &= setRegionEdgeEnergy(x, oneRegion.at(2).toDouble());
			addRegionSuccess &= setRegionElasticStart(x, oneRegion.at(7).toInt() == 1 ? true : false);
			addRegionSuccess &= setRegionElasticEnd(x, oneRegion.at(8).toInt() == 1 ? true : false);
			addRegionSuccess &= setRegionUnits(x, oneRegion.at(10));
			addRegionSuccess &= setRegionTimeUnits(x, oneRegion.at(11));

			if (x == 0){

				exafsRegions()->setDefaultEdgeEnergy(regionEdgeEnergy(x));
				exafsRegions()->setDefaultIsRelative(regionIsRelative(x));
			}
		}

		if (!addRegionSuccess)
			AMErrorMon::report(AMErrorReport(this,
							AMErrorReport::Alert,
							0,
							QString("There was an error reloading the scan region #%1, when reloading this scan from the database. Your database might be corrupted. Please report this bug to the Acquaman developers.").arg(x)));
	}
}
コード例 #2
0
bool UniPAX::RnaRegionReference::update(PersistenceManager& manager)
{
	// check single pointer if object was merged
	if (manager.isMerged(getRegionType()))
	{
		setRegionType(boost::dynamic_pointer_cast<SequenceRegionVocabulary>(manager.getMergedObject(getRegionType())));
	}
	if (manager.isMerged(getOrganism()))
	{
		setOrganism(boost::dynamic_pointer_cast<BioSource>(manager.getMergedObject(getOrganism())));
	}
	if (manager.isMerged(getAbsoluteRegion()))
	{
		setAbsoluteRegion(boost::dynamic_pointer_cast<SequenceLocation>(manager.getMergedObject(getAbsoluteRegion())));
	}
	if (manager.isMerged(getSubRegion()))
	{
		setSubRegion(boost::dynamic_pointer_cast<EntityReference>(manager.getMergedObject(getSubRegion())));
	}

	return UniPAX::EntityReference::update(manager);
}
コード例 #3
0
bool UniPAX::RnaRegionReference::merge(RnaRegionReference& object)
{
	if (subRegion != 0)
	{
		if (object.getSubRegion() != 0)
		{
			if (subRegion->getUnipaxId() != object.getSubRegion()->getUnipaxId())
			{
				std::cerr << "Error during merging: UniPAX::RnaRegionReference::subRegion not equal ..."
						<< subRegion->getUnipaxId() << " != " << object.getSubRegion()->getUnipaxId() << std::endl;
				return false;
			}
		}
	}
	else
	{
		setSubRegion(object.getSubRegion());
	}
	if (regionType != 0)
	{
		if (object.getRegionType() != 0)
		{
			if (regionType->getUnipaxId() != object.getRegionType()->getUnipaxId())
			{
				std::cerr << "Error during merging: UniPAX::RnaRegionReference::regionType not equal ..."
						<< regionType->getUnipaxId() << " != " << object.getRegionType()->getUnipaxId() << std::endl;
				return false;
			}
		}
	}
	else
	{
		setRegionType(object.getRegionType());
	}

	if (organism != 0)
	{
		if (object.getOrganism() != 0)
		{
			if (organism->getUnipaxId() != object.getOrganism()->getUnipaxId())
			{
				std::cerr << "Error during merging: UniPAX::RnaRegionReference::organism not equal ..."
						<< organism->getUnipaxId() << " != " << object.getOrganism()->getUnipaxId() << std::endl;
				return false;
			}
		}
	}
	else
	{
		setOrganism(object.getOrganism());
	}
	if (absoluteRegion != 0)
	{
		if (object.getAbsoluteRegion() != 0)
		{
			if (absoluteRegion->getUnipaxId() != object.getAbsoluteRegion()->getUnipaxId())
			{
				std::cerr << "Error during merging: UniPAX::RnaRegionReference::absoluteRegion not equal ..."
						<< absoluteRegion->getUnipaxId() << " != " << object.getAbsoluteRegion()->getUnipaxId() << std::endl;
				return false;
			}
		}
	}
	else
	{
		setAbsoluteRegion(object.getAbsoluteRegion());
	}

	if (!object.getSequence().empty())
	{
		if (!getSequence().empty())
		{
			if (getSequence() != object.getSequence())
			{
				std::cerr << "Error during merging: UniPAX::RnaRegionReference::sequence not equal ..."
						<< getSequence() << " != " << object.getSequence() << std::endl;
				return false;
			}
		}
		else
			setSequence(object.getSequence());
	}

	return UniPAX::EntityReference::merge(object);
}