Ignore:
Timestamp:
Apr 14, 2013, 9:41:07 PM (12 years ago)
Author:
Frederik Heber <heber@…>
Branches:
Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
Children:
ac9ca4
Parents:
c1a221
git-author:
Frederik Heber <heber@…> (03/05/13 09:07:15)
git-committer:
Frederik Heber <heber@…> (04/14/13 21:41:07)
Message:

Removed all error messages on missing values in CommandLineUI.

  • these have to be handled by validators, empty values might actually be allowed.
  • we now catch boost::bad_any_cast exception and return false if caught.
Location:
src/UIElements/CommandLineUI/Query
Files:
21 edited

Legend:

Unmodified
Added
Removed
  • src/UIElements/CommandLineUI/Query/AtomCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    5757  int IdxOfAtom = -1;
    5858  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    59     IdxOfAtom = CommandLineParser::getInstance().vm[getTitle()].as<int>();
     59    try {
     60      IdxOfAtom = CommandLineParser::getInstance().vm[getTitle()].as<int>();
     61    } catch(boost::bad_any_cast &e) {
     62      IdxOfAtom = -1;
     63      return false;
     64    }
    6065    temp = World::getInstance().getAtom(AtomById(IdxOfAtom));
    6166    return true;
    62   } else {
    63     ELOG(1, "CommandLineUI parsing error: Missing atom for " << getTitle() << ".");
    64     return false;
    6567  }
     68  return false;
    6669}
    6770
  • src/UIElements/CommandLineUI/Query/AtomsCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    5252  std::vector<int> IdxOfAtom;
    5353  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    54     IdxOfAtom = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<int> >();
     54    try {
     55      IdxOfAtom = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<int> >();
     56    } catch(boost::bad_any_cast &e) {
     57      IdxOfAtom.clear();
     58      return false;
     59    }
    5560    const atom *temp_element;
    5661    for (std::vector<int>::iterator iter = IdxOfAtom.begin(); iter != IdxOfAtom.end(); ++iter) {
     
    6065    }
    6166    return true;
    62   } else {
    63     ELOG(1, "CommandLineUI parsing error: Missing atoms for " << getTitle() << ".");
    64     return false;
    6567  }
     68  return false;
    6669}
    6770
  • src/UIElements/CommandLineUI/Query/BooleanCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    4848bool CommandLineDialog::BooleanCommandLineQuery::handle() {
    4949  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    50     temp = CommandLineParser::getInstance().vm[getTitle()].as<bool>();
     50    try {
     51      temp = CommandLineParser::getInstance().vm[getTitle()].as<bool>();
     52    } catch(boost::bad_any_cast &e) {
     53      temp = false;
     54      return false;
     55    }
    5156    return true;
    52   } else {
    53     ELOG(1, "CommandLineUI parsing error: Missing boolean for " << getTitle() << ".");
    54     return false;
    5557  }
     58  return false;
    5659}
    5760
  • src/UIElements/CommandLineUI/Query/DoubleCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    4949bool CommandLineDialog::DoubleCommandLineQuery::handle() {
    5050  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    51     temp = CommandLineParser::getInstance().vm[getTitle()].as<double>();
     51    try {
     52      temp = CommandLineParser::getInstance().vm[getTitle()].as<double>();
     53    } catch(boost::bad_any_cast &e) {
     54      temp = 0.;
     55      return false;
     56    }
    5257    return true;
    53   } else {
    54     ELOG(1, "CommandLineUI parsing error: Missing double for " << getTitle() << ".");
    55     return false;
    5658  }
     59  return false;
    5760}
    5861
  • src/UIElements/CommandLineUI/Query/DoublesCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    4848bool CommandLineDialog::DoublesCommandLineQuery::handle() {
    4949  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    50     temp = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<double> >();
     50    try {
     51      temp = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<double> >();
     52    } catch(boost::bad_any_cast &e) {
     53      temp.clear();
     54      return false;
     55    }
    5156    return true;
    52   } else {
    53     ELOG(1, "CommandLineUI parsing error: Missing doubles for " << getTitle() << ".");
    54     return false;
    5557  }
     58  return false;
    5659}
    5760
  • src/UIElements/CommandLineUI/Query/ElementCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    5353  // TODO: vector of ints and removing first is not correctly implemented yet. How to remove from a vector?
    5454  periodentafel *periode = World::getInstance().getPeriode();
     55  int Z = -1;
    5556  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    56     int Z = CommandLineParser::getInstance().vm[getTitle()].as< int >();
     57    try {
     58      Z = CommandLineParser::getInstance().vm[getTitle()].as< int >();
     59    } catch(boost::bad_any_cast &e) {
     60      Z = -1;
     61      return false;
     62    }
    5763    temp = periode->FindElement(Z);
    5864    ASSERT(temp != NULL, "Invalid element specified in ElementCommandLineQuery");
    5965    return true;
    60   } else {
    61     ELOG(1, "CommandLineUI parsing error: Missing element for " << getTitle() << ".");
    62     return false;
    6366  }
     67  return false;
    6468}
    6569
  • src/UIElements/CommandLineUI/Query/ElementsCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    5353  // TODO: vector of ints and removing first is not correctly implemented yet. How to remove from a vector?
    5454  periodentafel *periode = World::getInstance().getPeriode();
     55  std::vector<int> AllElements;
    5556  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    56     vector<int> AllElements = CommandLineParser::getInstance().vm[getTitle()].as< vector<int> >();
     57    try {
     58      AllElements = CommandLineParser::getInstance().vm[getTitle()].as< vector<int> >();
     59    } catch(boost::bad_any_cast &e) {
     60      AllElements.clear();
     61      return false;
     62    }
    5763    const element *temp_element;
    5864    for (vector<int>::iterator ZRunner = AllElements.begin(); ZRunner != AllElements.end(); ++ZRunner) {
     
    6268    }
    6369    return true;
    64   } else {
    65     ELOG(1, "CommandLineUI parsing error: Missing elements for " << getTitle() << ".");
    66     return false;
    6770  }
     71  return false;
    6872}
    6973
  • src/UIElements/CommandLineUI/Query/FileCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    4848bool CommandLineDialog::FileCommandLineQuery::handle() {
    4949  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    50     temp = CommandLineParser::getInstance().vm[getTitle()].as< boost::filesystem::path >();
     50    try {
     51      temp = CommandLineParser::getInstance().vm[getTitle()].as< boost::filesystem::path >();
     52    } catch(boost::bad_any_cast &e) {
     53      temp = std::string("");
     54      return false;
     55    }
    5156    return true;
    52   } else {
    53     ELOG(1, "CommandLineUI parsing error: Missing string for " << getTitle() << ".");
    54     return false;
    5557  }
     58  return false;
    5659}
    5760
  • src/UIElements/CommandLineUI/Query/FilesCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    4848bool CommandLineDialog::FilesCommandLineQuery::handle() {
    4949  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    50     temp = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<boost::filesystem::path> >();
     50    try {
     51      temp = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<boost::filesystem::path> >();
     52    } catch(boost::bad_any_cast &e) {
     53      temp.clear();
     54      return false;
     55    }
    5156    return true;
    52   } else {
    53     ELOG(1, "CommandLineUI parsing error: Missing string for " << getTitle() << ".");
    54     return false;
    5557  }
     58  return false;
    5659}
    5760
  • src/UIElements/CommandLineUI/Query/IntCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    4848bool CommandLineDialog::IntCommandLineQuery::handle() {
    4949  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    50     temp = CommandLineParser::getInstance().vm[getTitle()].as<int>();
     50    try {
     51      temp = CommandLineParser::getInstance().vm[getTitle()].as<int>();
     52    } catch(boost::bad_any_cast &e) {
     53      temp = 0;
     54      return false;
     55    }
    5156    return true;
    52   } else {
    53     ELOG(1, "CommandLineUI parsing error: Missing integer for " << getTitle() << ".");
    54     return false;
    5557  }
     58  return false;
    5659}
    5760
  • src/UIElements/CommandLineUI/Query/IntsCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    4848bool CommandLineDialog::IntsCommandLineQuery::handle() {
    4949  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    50     temp = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<int> >();
     50    try {
     51      temp = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<int> >();
     52    } catch(boost::bad_any_cast &e) {
     53      temp.clear();
     54      return false;
     55    }
    5156    return true;
    52   } else {
    53     ELOG(1, "CommandLineUI parsing error: Missing integers for " << getTitle() << ".");
    54     return false;
    5557  }
     58  return false;
    5659}
    5760
  • src/UIElements/CommandLineUI/Query/MoleculeCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    5252  int IdxOfMol = -1;
    5353  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    54     IdxOfMol = CommandLineParser::getInstance().vm[getTitle()].as<int>();
     54    try {
     55      IdxOfMol = CommandLineParser::getInstance().vm[getTitle()].as<int>();
     56    } catch(boost::bad_any_cast &e) {
     57      IdxOfMol = -1;
     58      return false;
     59    }
    5560    temp = World::getInstance().getMolecule(MoleculeById(IdxOfMol));
    5661    return true;
    57   } else {
    58     ELOG(1, "CommandLineUI parsing error: Missing molecule for " << getTitle() << ".");
    59     return false;
    6062  }
     63  return false;
    6164}
    6265
  • src/UIElements/CommandLineUI/Query/MoleculesCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    5353  std::vector<int> IdxOfMol;
    5454  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    55     IdxOfMol = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<int> >();
     55    try {
     56      IdxOfMol = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<int> >();
     57    } catch(boost::bad_any_cast &e) {
     58      IdxOfMol.clear();
     59      return false;
     60    }
    5661    for (std::vector<int>::iterator iter = IdxOfMol.begin(); iter != IdxOfMol.end(); ++iter) {
    5762      const molecule *temp_element = World::getInstance().getMolecule(MoleculeById(*iter));
     
    6065    }
    6166    return true;
    62   } else {
    63     ELOG(1, "CommandLineUI parsing error: Missing molecules for " << getTitle() << ".");
    64     return false;
    6567  }
     68  return false;
    6669}
    6770
  • src/UIElements/CommandLineUI/Query/RandomNumberDistribution_ParametersCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    5353
    5454bool CommandLineDialog::RandomNumberDistribution_ParametersCommandLineQuery::handle() {
     55  std::string stringtext;
    5556  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    56     std::string stringtext = CommandLineParser::getInstance().vm[getTitle()].as<std::string>();
     57    try {
     58      stringtext = CommandLineParser::getInstance().vm[getTitle()].as<std::string>();
     59    } catch(boost::bad_any_cast &e) {
     60      stringtext = std::string("");
     61      return false;
     62    }
    5763    std::stringstream text(stringtext);
    5864//    LOG(1, "INFO: Parameter set from CommandLine is '" << text.str() << "'");
    5965    text >> temp;
    6066    return true;
    61   } else {
    62     ELOG(1, "CommandLineUI parsing error: Missing RandomNumberDistribution_Parameters for " << getTitle() << ".");
    63     return false;
    6467  }
     68  return false;
    6569}
    6670
  • src/UIElements/CommandLineUI/Query/RealSpaceMatrixCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    5252  RealSpaceMatrixValue _temp;
    5353  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    54     _temp = CommandLineParser::getInstance().vm[getTitle()].as< RealSpaceMatrixValue >();
     54    try {
     55      _temp = CommandLineParser::getInstance().vm[getTitle()].as< RealSpaceMatrixValue >();
     56    } catch(boost::bad_any_cast &e) {
     57      for (size_t i=0;i<(NDIM*(NDIM+1))/2;++i)
     58        _temp.matrix[i] = 0.;
     59      return false;
     60    }
    5561    temp = _temp.toRealSpaceMatrix();
    5662    return true;
    57   } else {
    58     ELOG(1, "CommandLineUI parsing error: Missing symmetric box matrix for " << getTitle() << ".");
    59     return false;
    6063  }
     64  return false;
    6165}
    6266
  • src/UIElements/CommandLineUI/Query/StringCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    4848bool CommandLineDialog::StringCommandLineQuery::handle() {
    4949  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    50     temp = CommandLineParser::getInstance().vm[getTitle()].as<string>();
     50    try {
     51      temp = CommandLineParser::getInstance().vm[getTitle()].as<string>();
     52    } catch(boost::bad_any_cast &e) {
     53      temp = std::string("");
     54      return false;
     55    }
    5156    return true;
    52   } else {
    53     ELOG(1, "CommandLineUI parsing error: Missing string for " << getTitle() << ".");
    54     return false;
    5557  }
     58  return false;
    5659}
    5760
  • src/UIElements/CommandLineUI/Query/StringsCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    4848bool CommandLineDialog::StringsCommandLineQuery::handle() {
    4949  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    50     temp = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<std::string> >();
     50    try {
     51      temp = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<std::string> >();
     52    } catch(boost::bad_any_cast &e) {
     53      temp.clear();
     54      return false;
     55    }
    5156    return true;
    52   } else {
    53     ELOG(1, "CommandLineUI parsing error: Missing strings for " << getTitle() << ".");
    54     return false;
    5557  }
     58  return false;
    5659}
    5760
  • src/UIElements/CommandLineUI/Query/UnsignedIntCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    4848bool CommandLineDialog::UnsignedIntCommandLineQuery::handle() {
    4949  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    50     temp = CommandLineParser::getInstance().vm[getTitle()].as<unsigned int>();
     50    try {
     51      temp = CommandLineParser::getInstance().vm[getTitle()].as<unsigned int>();
     52    } catch(boost::bad_any_cast &e) {
     53      temp = -1;
     54      return false;
     55    }
    5156    return true;
    52   } else {
    53     ELOG(1, "CommandLineUI parsing error: Missing integer for " << getTitle() << ".");
    54     return false;
    5557  }
     58  return false;
    5659}
    5760
  • src/UIElements/CommandLineUI/Query/UnsignedIntsCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    4848bool CommandLineDialog::UnsignedIntsCommandLineQuery::handle() {
    4949  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    50     temp = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<unsigned int> >();
     50    try {
     51      temp = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<unsigned int> >();
     52    } catch(boost::bad_any_cast &e) {
     53      temp.clear();
     54      return false;
     55    }
    5156    return true;
    52   } else {
    53     ELOG(1, "CommandLineUI parsing error: Missing integers for " << getTitle() << ".");
    54     return false;
    5557  }
     58  return false;
    5659}
    5760
  • src/UIElements/CommandLineUI/Query/VectorCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    5454  VectorValue _temp;
    5555  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    56     _temp = CommandLineParser::getInstance().vm[getTitle()].as< VectorValue >();
     56    try {
     57      _temp = CommandLineParser::getInstance().vm[getTitle()].as< VectorValue >();
     58    } catch(boost::bad_any_cast &e) {
     59      for (size_t i=0;i<NDIM;++i)
     60        _temp.vector[i] = 0.;
     61      return false;
     62    }
    5763    temp = _temp.toVector();
    5864    return true;
    59   } else {
    60     ELOG(1, "CommandLineUI parsing error: Missing vector for " << getTitle() << ".");
    61     return false;
    6265  }
     66  return false;
    6367}
    6468
  • src/UIElements/CommandLineUI/Query/VectorsCommandLineQuery.cpp

    rc1a221 rdd0c8f  
    5454  std::vector<VectorValue> temporary;
    5555  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    56     temporary = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<VectorValue> >();
     56    try {
     57      temporary = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<VectorValue> >();
     58    } catch(boost::bad_any_cast &e) {
     59      temporary.clear();
     60      return false;
     61    }
    5762    for(std::vector<VectorValue>::iterator iter = temporary.begin(); iter != temporary.end(); ++iter) {
    5863      Vector temp_element = (*iter).toVector();
     
    6065    }
    6166    return true;
    62   } else {
    63     ELOG(1, "CommandLineUI parsing error: Missing vectors for " << getTitle() << ".");
    64     return false;
    6567  }
     68  return false;
    6669}
    6770
Note: See TracChangeset for help on using the changeset viewer.