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))); } }
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); }
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); }