KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > gcc > rmi > iiop > RemoteObject


1 /*
2  * Copyright 2004 The Apache Software Foundation or its licensors, as
3  * applicable.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
14  * implied.
15  *
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */

19 package gcc.rmi.iiop;
20
21 public abstract class RemoteObject
22 {
23     public RemoteObject()
24     {
25     }
26
27     protected void registerMethods()
28     {
29         registerMethod( "_is_a", -1 );
30     }
31
32     public void invoke( int id, byte[] objectKey, Object instance, ObjectInputStream input, ObjectOutputStream output )
33     {
34         switch(id)
35         {
36             case -1:
37             {
38                 output.writeBoolean(_is_a( objectKey ) );
39                 break;
40             }
41         }
42     }
43
44     public boolean _is_a( byte[] objectKey )
45     {
46         String ids[] = getIds();
47         boolean isa = false;
48
49         String id = new String( objectKey );
50
51         if (ids != null && ids.length > 0)
52         {
53             int i;
54             for( i=0; i<ids.length && !isa; i++ )
55             {
56                 isa = ids[i].equals(id);
57
58             }
59         }
60
61         return isa;
62     }
63
64     public abstract String[] getIds();
65     public abstract void registerMethod( String name, int id );
66 }
67
Popular Tags