KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > fractal > gui > model > SharedServerInterface


1 /***
2  * FractalGUI: a graphical tool to edit Fractal component configurations.
3  * Copyright (C) 2003 France Telecom R&D
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  * Contact: fractal@objectweb.org
20  *
21  * Authors: Eric Bruneton, Patrice Fauvel
22  */

23
24 package org.objectweb.fractal.gui.model;
25
26 import java.util.ArrayList JavaDoc;
27 import java.util.Collections JavaDoc;
28 import java.util.List JavaDoc;
29
30 /**
31  * An implementation of the {@link ServerInterface} interface for slave
32  * components.
33  */

34
35 public class SharedServerInterface extends SharedInterface
36   implements ServerInterface
37 {
38
39   /**
40    * The bindings that refer to this server interface. This list is a list of
41    * {@link Binding} objects.
42    */

43
44   private List JavaDoc bindings;
45
46   /**
47    * Constructs a new server interface for a slave component.
48    *
49    * @param owner a slave component.
50    * @param masterInterface the interface of the master component to which the
51    * constructed interface will correspond.
52    */

53
54   SharedServerInterface (
55     final SharedComponent owner,
56     final Interface masterInterface)
57   {
58     super(owner, masterInterface);
59     bindings = new ArrayList JavaDoc();
60   }
61
62   public List JavaDoc getBindings () {
63     return Collections.unmodifiableList(bindings);
64   }
65
66   /**
67    * Adds the given binding to the list of bindings that refer to this
68    * interface.
69    *
70    * @param binding a new binding that refer to this interface.
71    */

72
73   void addBinding (final Binding binding) {
74     for (int i = 0; i < bindings.size(); ++i) {
75       Binding b = (Binding)bindings.get(i);
76       if (b.getClientInterface() == binding.getClientInterface() && b.getServerInterface() == binding.getServerInterface()) {
77         return;
78       }
79     }
80     bindings.add(binding);
81   }
82
83   /**
84    * Removes the given binding from the list of bindings that refer to this
85    * interface.
86    *
87    * @param binding a binding that refer to this interface.
88    */

89
90   void removeBinding (final Binding binding) {
91     bindings.remove(binding);
92   }
93 }
94
Popular Tags