67 const EnumChecker *p = dynamic_cast<const EnumChecker *> (PeekPointer (checker)); |
69 const EnumChecker *p = dynamic_cast<const EnumChecker *> (PeekPointer (checker)); |
68 NS_ASSERT (p != 0); |
70 NS_ASSERT (p != 0); |
69 for (EnumChecker::ValueSet::const_iterator i = p->m_valueSet.begin (); i != p->m_valueSet.end (); i++) |
71 for (EnumChecker::ValueSet::const_iterator i = p->m_valueSet.begin (); i != p->m_valueSet.end (); i++) |
70 { |
72 { |
71 if (i->second == value) |
73 if (i->second == value) |
72 { |
74 { |
73 m_v = i->first; |
75 m_v = i->first; |
74 return true; |
76 return true; |
75 } |
77 } |
76 } |
78 } |
77 return false; |
79 return false; |
78 } |
80 } |
79 |
81 |
80 EnumChecker::EnumChecker () |
82 EnumChecker::EnumChecker () |
81 {} |
83 { |
82 |
84 } |
83 void |
85 |
|
86 void |
84 EnumChecker::AddDefault (int v, std::string name) |
87 EnumChecker::AddDefault (int v, std::string name) |
85 { |
88 { |
86 m_valueSet.push_front (std::make_pair (v, name)); |
89 m_valueSet.push_front (std::make_pair (v, name)); |
87 } |
90 } |
88 void |
91 void |
89 EnumChecker::Add (int v, std::string name) |
92 EnumChecker::Add (int v, std::string name) |
90 { |
93 { |
91 m_valueSet.push_back (std::make_pair (v, name)); |
94 m_valueSet.push_back (std::make_pair (v, name)); |
92 } |
95 } |
93 bool |
96 bool |
94 EnumChecker::Check (const AttributeValue &value) const |
97 EnumChecker::Check (const AttributeValue &value) const |
95 { |
98 { |
96 const EnumValue *p = dynamic_cast<const EnumValue *> (&value); |
99 const EnumValue *p = dynamic_cast<const EnumValue *> (&value); |
97 if (p == 0) |
100 if (p == 0) |
98 { |
101 { |
99 return false; |
102 return false; |
100 } |
103 } |
101 for (ValueSet::const_iterator i = m_valueSet.begin (); i != m_valueSet.end (); i++) |
104 for (ValueSet::const_iterator i = m_valueSet.begin (); i != m_valueSet.end (); i++) |
102 { |
105 { |
103 if (i->first == p->Get ()) |
106 if (i->first == p->Get ()) |
104 { |
107 { |
105 return true; |
108 return true; |
106 } |
109 } |
107 } |
110 } |
108 return false; |
111 return false; |
109 } |
112 } |
110 std::string |
113 std::string |
111 EnumChecker::GetValueTypeName (void) const |
114 EnumChecker::GetValueTypeName (void) const |
233 return checker; |
236 return checker; |
234 } |
237 } |
235 checker->Add (v12, n12); |
238 checker->Add (v12, n12); |
236 if (n13 == "") |
239 if (n13 == "") |
237 { |
240 { |
238 return checker; |
241 return checker; |
239 } |
242 } |
240 checker->Add (v13, n13); |
243 checker->Add (v13, n13); |
241 if (n14 == "") |
244 if (n14 == "") |
242 { |
245 { |
243 return checker; |
246 return checker; |
244 } |
247 } |
245 checker->Add (v14, n14); |
248 checker->Add (v14, n14); |
246 if (n15 == "") |
249 if (n15 == "") |
247 { |
250 { |
248 return checker; |
251 return checker; |
249 } |
252 } |
250 checker->Add (v15, n15); |
253 checker->Add (v15, n15); |
251 if (n16 == "") |
254 if (n16 == "") |
252 { |
255 { |
253 return checker; |
256 return checker; |
254 } |
257 } |
255 checker->Add (v16, n16); |
258 checker->Add (v16, n16); |
256 if (n17 == "") |
259 if (n17 == "") |
257 { |
260 { |
258 return checker; |
261 return checker; |
259 } |
262 } |
260 checker->Add (v17, n17); |
263 checker->Add (v17, n17); |
261 if (n18 == "") |
264 if (n18 == "") |
262 { |
265 { |
263 return checker; |
266 return checker; |
264 } |
267 } |
265 checker->Add (v18, n18); |
268 checker->Add (v18, n18); |
266 if (n19 == "") |
269 if (n19 == "") |
267 { |
270 { |
268 return checker; |
271 return checker; |
269 } |
272 } |
270 checker->Add (v19, n19); |
273 checker->Add (v19, n19); |
271 if (n20 == "") |
274 if (n20 == "") |
272 { |
275 { |
273 return checker; |
276 return checker; |
274 } |
277 } |
275 checker->Add (v20, n20); |
278 checker->Add (v20, n20); |
276 if (n21 == "") |
279 if (n21 == "") |
277 { |
280 { |
278 return checker; |
281 return checker; |
279 } |
282 } |
280 checker->Add (v21, n21); |
283 checker->Add (v21, n21); |
281 if (n22 == "") |
284 if (n22 == "") |
282 { |
285 { |
283 return checker; |
286 return checker; |
284 } |
287 } |
285 checker->Add (v22, n22); |
288 checker->Add (v22, n22); |
286 return checker; |
289 return checker; |
287 } |
290 } |
288 |
291 |