1 | // Copyright FreeHEP, 2005. |
---|
2 | |
---|
3 | #include "cheprep/DefaultHepRepDefinition.h" |
---|
4 | #include "cheprep/DefaultHepRepAttDef.h" |
---|
5 | |
---|
6 | #include <iostream> |
---|
7 | #include <algorithm> |
---|
8 | |
---|
9 | using namespace std; |
---|
10 | using namespace HEPREP; |
---|
11 | |
---|
12 | /** |
---|
13 | * @author Mark Donszelmann |
---|
14 | * @version $Id: DefaultHepRepDefinition.cc,v 1.8 2005/06/02 21:28:45 duns Exp $ |
---|
15 | */ |
---|
16 | namespace cheprep { |
---|
17 | |
---|
18 | DefaultHepRepDefinition::DefaultHepRepDefinition() |
---|
19 | : DefaultHepRepAttribute() { |
---|
20 | } |
---|
21 | |
---|
22 | DefaultHepRepDefinition::~DefaultHepRepDefinition() { |
---|
23 | set<HepRepAttDef *> list = getAttDefsFromNode(); |
---|
24 | for (set<HepRepAttDef*>::iterator i1 = list.begin(); i1 != list.end(); i1++) { |
---|
25 | delete (*i1); |
---|
26 | } |
---|
27 | } |
---|
28 | |
---|
29 | set<HepRepAttDef *> DefaultHepRepDefinition::getAttDefsFromNode() { |
---|
30 | set<HepRepAttDef*> attSet; |
---|
31 | for (map<string, HepRepAttDef*>::iterator i = attDefs.begin(); i != attDefs.end(); i++) { |
---|
32 | attSet.insert((*i).second); |
---|
33 | } |
---|
34 | return attSet; |
---|
35 | } |
---|
36 | |
---|
37 | void DefaultHepRepDefinition::addAttDef(HepRepAttDef* hepRepAttDef) { |
---|
38 | string lowerCaseName = hepRepAttDef->getLowerCaseName(); |
---|
39 | if (attDefs[lowerCaseName] != NULL) delete attDefs[lowerCaseName]; |
---|
40 | attDefs[lowerCaseName] = hepRepAttDef; |
---|
41 | } |
---|
42 | |
---|
43 | void DefaultHepRepDefinition::addAttDef(string name, string desc, string type, string extra) { |
---|
44 | addAttDef(new DefaultHepRepAttDef(name, desc, type, extra)); |
---|
45 | } |
---|
46 | |
---|
47 | HepRepAttDef* DefaultHepRepDefinition::getAttDefFromNode(string name) { |
---|
48 | string s = name; |
---|
49 | transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); |
---|
50 | return (attDefs.count(s) > 0) ? attDefs[s] : NULL; |
---|
51 | } |
---|
52 | |
---|
53 | } // cheprep |
---|