1 : //==============================================================================
2 : // File <$/src/cpp/dev/idlc/exception.cpp>
3 : // This file is part of YaOrb : Yet Another Object Request Broker,
4 : // Copyright (c) 2000-2003, Marc Alff.
5 : //
6 : // This program is free software; you can redistribute it and/or
7 : // modify it under the terms of the GNU General Public License
8 : // as published by the Free Software Foundation; either version 2
9 : // of the License, or (at your option) any later version.
10 : //
11 : // This program is distributed in the hope that it will be useful,
12 : // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 : // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 : // GNU General Public License for more details.
15 : //
16 : // You should have received a copy of the GNU General Public License
17 : // along with this program; if not, write to the Free Software
18 : // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 : //
20 : //==============================================================================
21 :
22 : #include "src/cpp/prod/tool/DEVELOPMENT.h"
23 : #include "src/cpp/prod/tool/Assert.h"
24 :
25 : #include "src/cpp/dev/idlc/exception.h"
26 :
27 285 : Exception::Exception(const String& name)
28 285 : : Symbol(name, exceptionSymbol), _items()
29 : {
30 0 : }
31 :
32 285 : Exception::~Exception()
33 : {
34 : _items.clear() ; // NOT clearAndDestroy : done by sym_tab.
35 0 : }
36 :
37 114 : void Exception::addMember(Member *m)
38 : {
39 : ASSERT(m != NULL) ;
40 114 : const String& name = m->GetName() ;
41 114 : if (findMemberByName(name) != NULL)
42 : {
43 0 : NON_DEV("Error message") ;
44 : }
45 : else
46 : {
47 : _items.addTail(m) ;
48 : }
49 : }
50 :
51 79 : const MemberList& Exception::GetMembers(void) const
52 : {
53 : return _items ;
54 : }
55 :
56 114 : Member* Exception::findMemberByName(const String& name) const
57 : {
58 : Member *item = NULL ;
59 : MemberListIt it(_items) ;
60 241 : while (it.GetNext())
61 : {
62 : item = it.GetItem() ;
63 13 : if (item->GetName() == name)
64 : {
65 : return item ;
66 : }
67 : }
68 :
69 : return NULL ;
70 48 : }
71 48 :
|