1 /******************************************************************************
2 * Copyright (c) 2000-2016 Ericsson Telecom AB
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
13 ******************************************************************************/
14 #include "EnumItem.hh"
19 // =================================
21 // =================================
23 EnumItem::EnumItem(Identifier
*p_name
, Value
*p_value
)
24 : Node(), Location(), name(p_name
), value(p_value
)
26 if (!p_name
) FATAL_ERROR("NULL parameter: Common::EnumItem::EnumItem()");
29 EnumItem::EnumItem(const EnumItem
& p
)
30 : Node(p
), Location(p
)
33 value
=p
.value
?p
.value
->clone():0;
42 EnumItem
*EnumItem::clone() const
44 return new EnumItem(*this);
47 void EnumItem::set_fullname(const string
& p_fullname
)
49 Node::set_fullname(p_fullname
);
50 if(value
) value
->set_fullname(p_fullname
);
53 void EnumItem::set_my_scope(Scope
*p_scope
)
55 if(value
) value
->set_my_scope(p_scope
);
58 void EnumItem::set_value(Value
*p_value
)
60 if(!p_value
) FATAL_ERROR("NULL parameter: Common::EnumItem::set_value()");
61 if(value
) FATAL_ERROR("Common::EnumItem::set_value()");
65 void EnumItem::set_text(const string
& p_text
)
70 void EnumItem::dump(unsigned level
) const
74 DEBUG(level
, "with value:");
79 // =================================
81 // =================================
83 EnumItems::EnumItems(const EnumItems
& p
)
84 : Node(p
), my_scope(0)
86 for (size_t i
= 0; i
< p
.eis_v
.size(); i
++) add_ei(p
.eis_v
[i
]->clone());
89 EnumItems::~EnumItems()
91 for(size_t i
= 0; i
< eis_v
.size(); i
++) delete eis_v
[i
];
96 void EnumItems::release_eis()
102 EnumItems
* EnumItems::clone() const
104 return new EnumItems(*this);
107 void EnumItems::set_fullname(const string
& p_fullname
)
109 Node::set_fullname(p_fullname
);
110 for (size_t i
= 0; i
< eis_v
.size(); i
++) {
111 EnumItem
*ei
= eis_v
[i
];
112 ei
->set_fullname(p_fullname
+ "." + ei
->get_name().get_dispname());
116 void EnumItems::set_my_scope(Scope
*p_scope
)
119 for(size_t i
= 0; i
< eis_v
.size(); i
++)
120 eis_v
[i
]->set_my_scope(p_scope
);
123 void EnumItems::add_ei(EnumItem
*p_ei
)
126 FATAL_ERROR("NULL parameter: Common::EnumItems::add_ei()");
128 const Identifier
& id
= p_ei
->get_name();
129 const string
& name
= id
.get_name();
130 if (!eis_m
.has_key(name
)) eis_m
.add(name
, p_ei
);
131 p_ei
->set_fullname(get_fullname()+"."+id
.get_dispname());
132 p_ei
->set_my_scope(my_scope
);
135 void EnumItems::dump(unsigned level
) const
137 for (size_t i
= 0; i
< eis_v
.size(); i
++) eis_v
[i
]->dump(level
);
This page took 0.035566 seconds and 5 git commands to generate.