KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > openccm > Containers > MetaInformation > OperationInstanceListImpl


1 /*====================================================================
2
3 created on 18 ao?t 2003
4 OpenCCM: The Open CORBA Component Model Platform
5 Copyright (C) 2001-2002 USTL - LIFL - GOAL
6 Contact: openccm-team@objectweb.org
7
8 This library is free software; you can redistribute it and/or
9 modify it under the terms of the GNU Lesser General Public
10 License as published by the Free Software Foundation; either
11 version 2.1 of the License, or any later version.
12
13 This library is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 Lesser General Public License for more details.
17
18 You should have received a copy of the GNU Lesser General Public
19 License along with this library; if not, write to the Free Software
20 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
21 USA
22
23 Initial developer(s): Hameau Fabien.
24 Contributor(s): ______________________________________.
25
26 */

27 package org.objectweb.openccm.Containers.MetaInformation;
28
29 import org.objectweb.ccm.util.Table;
30 import org.omg.CORBA.LocalObject JavaDoc;
31 import org.omg.Components.InvalidName;
32
33
34 /**
35  * @author hameau
36  *
37  * To change the template for this generated type comment go to
38  * Window>Preferences>Java>Code Generation>Code and Comments
39  */

40 public class OperationInstanceListImpl
41 extends LocalObject JavaDoc
42 implements OperationInstanceList
43 {
44   private Table _operations;
45   
46    public OperationInstanceListImpl()
47    {
48      _operations = new Table();
49    }
50
51    /* (non-Javadoc)
52     * @see org.objectweb.openccm.Containers.MetaInformation.OperationInstanceListOperations#get_operation_instance(java.lang.String)
53     */

54    public OperationInstance
55    get_operation_instance(String JavaDoc name)
56    throws InvalidName
57    {
58      OperationInstance result = (OperationInstance) _operations.get(name);
59      if(result == null)
60        throw new InvalidName();
61      return result;
62    }
63
64    /* (non-Javadoc)
65     * @see org.objectweb.openccm.Containers.MetaInformation.OperationInstanceListOperations#get_named_operation_instances(java.lang.String[])
66     */

67    public OperationInstance[]
68    get_named_operation_instances(String JavaDoc[] names)
69    throws InvalidName
70    {
71      OperationInstance[] result = new OperationInstance[names.length];
72
73     // Iterate on all the connections.
74

75     int i = 0;
76     for(i=0;i<names.length;i++)
77     {
78       result[i] = (OperationInstance)_operations.get(names[i]);
79      
80       if(result[i] == null)
81       {
82         throw new InvalidName();
83       }
84      }
85    
86     return result;
87    }
88
89    /* (non-Javadoc)
90     * @see org.objectweb.openccm.Containers.MetaInformation.OperationInstanceListOperations#get_all_operation_instances()
91     */

92    public OperationInstance[]
93    get_all_operation_instances()
94    {
95      OperationInstance[] result = new OperationInstance[_operations.size()];
96   
97       // Iterate on all the connections.
98
int idx = 0;
99       for(java.util.Enumeration JavaDoc elements = _operations.elements(); elements.hasMoreElements(); )
100       {
101         OperationInstance info = (OperationInstance)elements.nextElement();
102           result[idx++] = info;
103       }
104       return result;
105    }
106
107    /* (non-Javadoc)
108     * @see org.objectweb.openccm.Containers.MetaInformation.OperationInstanceListOperations#add_operation_instance(org.objectweb.openccm.Containers.MetaInformation.OperationInstance)
109     */

110    public void add_operation_instance(OperationInstance cpi)
111    {
112      String JavaDoc key = cpi.type_reference().name() + cpi.toString().substring(cpi.toString().lastIndexOf("@"));
113      _operations.put(key,cpi);
114     
115    }
116
117    /* (non-Javadoc)
118     * @see org.objectweb.openccm.Containers.MetaInformation.OperationInstanceListOperations#remove_operation_instance(java.lang.String)
119     */

120    public void remove_operation_instance(String JavaDoc name)
121    throws InvalidName
122    {
123      Object JavaDoc result = _operations.remove(name);
124     
125      if (result == null) throw new InvalidName();
126    }
127 }
128
Popular Tags