Changeset 6440c6 for src


Ignore:
Timestamp:
Feb 13, 2013, 3:47:46 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:
cf1d82
Parents:
b11f5e
git-author:
Frederik Heber <heber@…> (01/10/13 13:27:38)
git-committer:
Frederik Heber <heber@…> (02/13/13 15:47:46)
Message:

Reworked inheritance graph of Parameter and Value.

Location:
src
Files:
1 deleted
13 edited

Legend:

Unmodified
Added
Removed
  • src/Parameters/Makefile.am

    rb11f5e r6440c6  
    3131        Parameters/Parameter.hpp \
    3232        Parameters/Parameter_impl.hpp \
    33         Parameters/ParameterAsString.hpp \
    3433        Parameters/ParameterInterface.hpp \
    3534        Parameters/Validators/DiscreteValidator.hpp \
  • src/Parameters/Parameter.hpp

    rb11f5e r6440c6  
    2828 */
    2929template <typename T>
    30 class Parameter : public ParameterInterface<T>, public Value<T>
     30class Parameter :
     31  virtual public ParameterInterface,
     32  virtual public Value<T>
    3133{
    3234public:
     
    5355      { return !((*this)==(_instance)); }
    5456
    55   ParameterAsString* clone() const;
     57  ParameterInterface* clone() const;
    5658
    5759//private: // TODO...
  • src/Parameters/ParameterInterface.hpp

    rb11f5e r6440c6  
    1616#include <string>
    1717
    18 #include "Parameters/ValueInterface.hpp"
    19 #include "Parameters/ParameterAsString.hpp"
     18#include "CodePatterns/Clone.hpp"
    2019
     20#include "Parameters/ValueAsString.hpp"
    2121
    22 /** This interface represents a clonable, named Value.
     22/** This interface represents a named Value.
    2323 *
    2424 */
    25 template <class T>
    26 class ParameterInterface : virtual public ParameterAsString, virtual public ValueInterface<T>
     25class ParameterInterface :
     26  virtual public ValueAsString,
     27  public Clone<ParameterInterface>
    2728{
    2829public:
     
    3132
    3233  const std::string &getName() const { return name; }
     34
     35  virtual ParameterInterface* clone() const=0;
    3336
    3437private:
  • src/Parameters/Parameter_impl.hpp

    rb11f5e r6440c6  
    2020template<typename T>
    2121Parameter<T>::Parameter(const Parameter<T> &instance) :
    22   ParameterInterface<T>(instance.getName()),
     22  ParameterInterface(instance.getName()),
    2323  Value<T>(instance.getValidator())
    2424{
     
    3131template<typename T>
    3232Parameter<T>::Parameter() :
    33   ParameterInterface<T>("__no_name__"),
     33  ParameterInterface("__no_name__"),
    3434  Value<T>()
    3535{};
     
    4040template<typename T>
    4141Parameter<T>::Parameter(const std::string &_name) :
    42   ParameterInterface<T>(_name),
     42  ParameterInterface(_name),
    4343  Value<T>()
    4444{};
     
    5151template<typename T>
    5252Parameter<T>::Parameter(const std::string &_name, const T &_value) :
    53   ParameterInterface<T>(_name),
     53  ParameterInterface(_name),
    5454  Value<T>()
    5555{
     
    6464template<typename T>
    6565Parameter<T>::Parameter(const std::string &_name, const Validator<T> &_Validator) :
    66   ParameterInterface<T>(_name),
     66  ParameterInterface(_name),
    6767  Value<T>(_Validator)
    6868{};
     
    7676template<typename T>
    7777Parameter<T>::Parameter(const std::string &_name, const Validator<T> &_Validator, const T &_value) :
    78   ParameterInterface<T>(_name),
     78  ParameterInterface(_name),
    7979  Value<T>(_Validator)
    8080{
     
    8989template<typename T>
    9090Parameter<T>::Parameter(const std::string &_name, const std::vector<T> &_ValidValues) :
    91   ParameterInterface<T>(_name),
     91  ParameterInterface(_name),
    9292  Value<T>(_ValidValues)
    9393{};
     
    101101template<typename T>
    102102Parameter<T>::Parameter(const std::string &_name, const std::vector<T> &_ValidValues, const T &_value) :
    103   ParameterInterface<T>(_name),
     103  ParameterInterface(_name),
    104104  Value<T>(_ValidValues)
    105105{
     
    114114template<typename T>
    115115Parameter<T>::Parameter(const std::string &_name, const range<T> &_ValidRange) :
    116   ParameterInterface<T>(_name),
     116  ParameterInterface(_name),
    117117  Value<T>(_ValidRange)
    118118{};
     
    126126template<typename T>
    127127Parameter<T>::Parameter(const std::string &_name, const range<T> &_ValidRange, const T &_value) :
    128   ParameterInterface<T>(_name),
     128  ParameterInterface(_name),
    129129  Value<T>(_ValidRange)
    130130{
     
    149149    return Value<T>::getAsString();
    150150  } catch(ParameterException &e) {
    151     e << ParameterName(ParameterInterface<T>::getName());
     151    e << ParameterName(ParameterInterface::getName());
    152152    throw;
    153153  }
     
    164164    return Value<T>::get();
    165165  } catch(ParameterException &e) {
    166     e << ParameterName(ParameterInterface<T>::getName());
     166    e << ParameterName(ParameterInterface::getName());
    167167    throw;
    168168  }
     
    179179    Value<T>::set(_value);
    180180  } catch(ParameterException &e) {
    181     e << ParameterName(ParameterInterface<T>::getName());
     181    e << ParameterName(ParameterInterface::getName());
    182182    throw;
    183183  }
     
    194194    Value<T>::setAsString(_value);
    195195  } catch(ParameterException &e) {
    196     e << ParameterName(ParameterInterface<T>::getName());
     196    e << ParameterName(ParameterInterface::getName());
    197197    throw;
    198198  }
     
    211211    status = status &&
    212212        (*dynamic_cast<const Value<T> *>(this) == dynamic_cast<const Value<T> &>(_instance));
    213     status = status && (ParameterInterface<T>::getName() == _instance.ParameterInterface<T>::getName());
    214   } catch(ParameterException &e) {
    215     e << ParameterName(ParameterInterface<T>::getName());
     213    status = status && (ParameterInterface::getName() == _instance.ParameterInterface::getName());
     214  } catch(ParameterException &e) {
     215    e << ParameterName(ParameterInterface::getName());
    216216    throw;
    217217  }
     
    224224 */
    225225template<typename T>
    226 inline ParameterAsString* Parameter<T>::clone() const
    227 {
    228   Parameter<T> *instance = new Parameter<T>(ParameterInterface<T>::getName(), Value<T>::getValidator());
     226inline ParameterInterface* Parameter<T>::clone() const
     227{
     228  Parameter<T> *instance = new Parameter<T>(ParameterInterface::getName(), Value<T>::getValidator());
    229229  if (Value<T>::ValueSet)
    230230    instance->set(Value<T>::get());
  • src/Parameters/Value.hpp

    rb11f5e r6440c6  
    1818#include <vector>
    1919
     20#include "ValueAsString.hpp"
    2021#include "ValueInterface.hpp"
    2122#include "Validators/Validator.hpp"
     
    5758 */
    5859template <class T>
    59 class Value : virtual public ValueInterface<T>
     60class Value :
     61  virtual public ValueAsString,
     62  public ValueInterface<T>
    6063{
    6164  //!> unit test needs to have access to internal values
  • src/Parameters/ValueInterface.hpp

    rb11f5e r6440c6  
    2323 */
    2424template <class T>
    25 class ValueInterface : virtual public ValueAsString
     25class ValueInterface
    2626{
    2727public:
  • src/Parameters/unittests/Makefile.am

    rb11f5e r6440c6  
    5656        ../Parameters/Parameter.hpp \
    5757        ../Parameters/Parameter_impl.hpp \
    58         ../Parameters/ParameterAsString.hpp \
    5958        ../Parameters/ParameterInterface.hpp
    6059ContinuousParameterTest_LDADD = \
     
    8079        ../Parameters/Parameter.hpp \
    8180        ../Parameters/Parameter_impl.hpp \
    82         ../Parameters/ParameterAsString.hpp \
    8381        ../Parameters/ParameterInterface.hpp \
    8482        ../Parameters/Validators/DiscreteValidator.hpp \
  • src/Parser/FormatParser_Parameters.cpp

    rb11f5e r6440c6  
    4444#include "CodePatterns/Log.hpp"
    4545
    46 #include "Parameters/ParameterAsString.hpp"
     46#include "Parameters/ParameterInterface.hpp"
    4747#include "FormatParser_Parameters.hpp"
    4848
     
    102102 * @param instance parameter to add
    103103 */
    104 void FormatParser_Parameters::appendParameter(ParameterAsString *instance)
     104void FormatParser_Parameters::appendParameter(ParameterInterface *instance)
    105105{
    106106  storage->registerInstance(instance);
     
    124124 * @return pointer to instance with this \a _name
    125125 */
    126 ParameterAsString *FormatParser_Parameters::getParameter(const std::string &_name) const
     126ParameterInterface *FormatParser_Parameters::getParameter(const std::string &_name) const
    127127{
    128128  return storage->getByName(_name);
     
    202202          +key+"' with value "+valuestream.str()+"!");
    203203      if (params.haveParameter(key)) {
    204         ParameterAsString *instance = params.getParameter(key);
     204        ParameterInterface *instance = params.getParameter(key);
    205205        instance->setAsString(valuestream.str());
    206206      }
  • src/Parser/FormatParser_Parameters.hpp

    rb11f5e r6440c6  
    2020#include "Parser/Parameters/ParameterStorage.hpp"
    2121
    22 class ParameterAsString;
     22class ParameterInterface;
    2323
    2424/** This class is an interface to the internal parameters of any FormatParser.
     
    4141
    4242  // accessing parameters in storage
    43   void appendParameter(ParameterAsString *instance);
     43  void appendParameter(ParameterInterface *instance);
    4444  bool haveParameter(const std::string &_name) const;
    45   ParameterAsString *getParameter(const std::string &_name) const;
     45  ParameterInterface *getParameter(const std::string &_name) const;
    4646
    4747protected:
  • src/Parser/Makefile.am

    rb11f5e r6440c6  
    6363        Parameters/Parameter.hpp \
    6464        Parameters/Parameter_impl.hpp \
    65         Parameters/ParameterAsString.hpp \
    6665        Parameters/ParameterInterface.hpp \
    6766        Parameters/Validators/DiscreteValidator.hpp \
  • src/Parser/Parameters/ParameterStorage.cpp

    rb11f5e r6440c6  
    5252{
    5353  for (const_iterator iter = _storage.getBeginIter(); iter != _storage.getEndIter(); ++iter) {
    54     ParameterAsString *instance = (iter->second)->clone();
     54    ParameterInterface *instance = (iter->second)->clone();
    5555    registerInstance(instance);
    5656  }
     
    6464}
    6565
    66 CONSTRUCT_REGISTRY(ParameterAsString)
     66CONSTRUCT_REGISTRY(ParameterInterface)
  • src/Parser/Parameters/ParameterStorage.hpp

    rb11f5e r6440c6  
    1616#include "CodePatterns/Registry.hpp"
    1717
    18 #include "Parameters/ParameterAsString.hpp"
     18#include "Parameters/ParameterInterface.hpp"
    1919
    2020/** Parameter Registry.
     
    2323 *
    2424 */
    25 class ParameterStorage : public Registry<ParameterAsString>
     25class ParameterStorage : public Registry<ParameterInterface>
    2626{
    2727public:
  • src/Parser/Parameters/unittests/ParameterStorageUnitTest.cpp

    rb11f5e r6440c6  
    6767    ValidValues.push_back(i);
    6868  range<double> ValidRange(1., 4.);
    69   ParameterAsString *intParam = new Parameter<int>("intParam", ValidValues);
    70   ParameterAsString *doubleParam = new Parameter<double>("doubleParam", ValidRange);
     69  ParameterInterface *intParam = new Parameter<int>("intParam", ValidValues);
     70  ParameterInterface *doubleParam = new Parameter<double>("doubleParam", ValidRange);
    7171  // note: delete is done by registry in tearDown ...
    7272
Note: See TracChangeset for help on using the changeset viewer.