source: PSPA/Interface_Web/trunk/pspaWT/sources/controler/src/abstractElement.cc @ 373

Last change on this file since 373 was 373, checked in by touze, 11 years ago

recupere travail sur elt snapshot

File size: 3.1 KB
Line 
1
2#include <iostream>
3#include <algorithm>    // std::find
4
5#include "abstractElement.h"
6
7abstractElement::abstractElement() 
8: abstractSoftware_(NULL)
9{
10  setDefaultValues();
11  setDefaults();
12  stepmaxcm_ = 1000000;
13}
14
15abstractElement::abstractElement(string lab)
16{
17  label_ = lab;
18  setDefaultValues();
19  setDefaults();
20  stepmaxcm_ = 1000000;
21}
22
23abstractElement::~abstractElement() 
24{
25  if (parametersString_ != NULL) delete [] parametersString_ ;
26}
27
28void abstractElement::setDefaultValues() 
29{
30  defaultLabel_ = string("XXXXXX");
31  defaultLength_ = 0.0;
32  defaultAperture_ = 1.e+6;
33  phaseStepMax_ = 10.;
34}
35
36void abstractElement::setDefaults() 
37{
38  label_ = defaultLabel_;
39  nbParam_ = 2;
40  lenghtElem_ = defaultLength_;
41  aperture_ = defaultAperture_;
42}
43
44void abstractElement::setPhaseStep(double) { 
45  cout << " setPhaseStep : ce n'est pas celui la qu'il faut ! " ; 
46  return;
47}
48
49void abstractElement::setParameters(double ll, double aper) 
50{
51  lenghtElem_ = ll;
52  aperture_ = aper;
53}
54
55void abstractElement::setLabel(string lab)
56{
57  label_= lab;
58}
59
60string abstractElement::getLabel() const
61{
62  return label_;
63}
64
65
66nomdElements abstractElement::getNomdElement() const 
67{
68  return elementName_;
69}
70
71
72
73double abstractElement::getLenghtOfElement() const { 
74  return lenghtElem_;
75}
76
77int abstractElement::getNbParams() const {
78  return nbParam_;
79}
80
81
82trivaluedBool abstractElement::is_accepted_by_software(nomDeLogiciel prog) {
83    if (acceptableSoftware_.size() == 0) {
84        return TBoolError;
85    }
86
87    if ( std::find(acceptableSoftware_.begin(), acceptableSoftware_.end(), prog) != acceptableSoftware_.end()) {
88        return TBoolOk;
89    } else if ( std::find(ignoreSoftware_.begin(), ignoreSoftware_.end(), prog) != ignoreSoftware_.end()) {
90        return TBoolIgnore;
91    } else {
92        return TBoolError;
93    }
94
95    return TBoolOk;
96}
97
98
99double abstractElement::getInitialKineticEnergy() const {
100  return 0.0;
101}
102
103
104string abstractElement::generatorOutputFlow() const {
105  return "";
106}
107
108trivaluedBool abstractElement::setSoftware(nomDeLogiciel prog) 
109{
110  trivaluedBool tb = TBoolError;
111  if (std::find(acceptableSoftware_.begin(),acceptableSoftware_.end(),prog) != acceptableSoftware_.end()) {
112    tb = TBoolOk;
113  } else if (std::find(ignoreSoftware_.begin(),ignoreSoftware_.end(),prog) != ignoreSoftware_.end()) {
114    tb = TBoolIgnore;
115  } else {
116    tb = TBoolError;
117  }
118 
119  if ((tb == TBoolOk) || (tb == TBoolIgnore)) {
120    if (prog == nomDeLogiciel::parmela) {
121      abstractSoftware_ = new softwareParmela();
122    } else if (prog == nomDeLogiciel::transport) {
123      abstractSoftware_ = new softwareTransport();
124    } else if (prog == nomDeLogiciel::generator) {
125      abstractSoftware_ = new softwareGenerator();
126    } else if (prog == nomDeLogiciel::test) {
127      abstractSoftware_ = new softwareTest();
128    } else if (prog == nomDeLogiciel::unknownSoftware) {
129      abstractSoftware_ = NULL;
130    }
131  }
132  return tb;
133}
134
135void abstractElement::registerAcceptableSoftware(nomDeLogiciel abs,trivaluedBool b) {
136  if (b == TBoolIgnore) {
137    ignoreSoftware_.push_back(abs);
138  } else if (b == TBoolOk) {
139    acceptableSoftware_.push_back(abs);
140  }
141}
Note: See TracBrowser for help on using the repository browser.