UtilDelegate.java revision 608:7e06bf1dcb09
1/*
2 * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.  Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25/*
26 * Licensed Materials - Property of IBM
27 * RMI-IIOP v1.0
28 * Copyright IBM Corp. 1998 1999  All Rights Reserved
29 *
30 */
31
32package javax.rmi.CORBA;
33
34import java.io.Serializable;
35import java.rmi.Remote;
36import java.rmi.RemoteException;
37import javax.rmi.CORBA.Tie;
38import javax.rmi.CORBA.ValueHandler;
39import org.omg.CORBA.ORB;
40import org.omg.CORBA.portable.InputStream;
41import org.omg.CORBA.portable.OutputStream;
42import org.omg.CORBA.SystemException;
43
44/**
45 * Supports delegation for method implementations in {@link Util}.  The
46 * delegate is a singleton instance of a class that implements this
47 * interface and provides a replacement implementation for all the
48 * methods of <code>javax.rmi.CORBA.Util</code>.
49 *
50 * Delegation is enabled by providing the delegate's class name as the
51 * value of the
52 * <code>javax.rmi.CORBA.UtilClass</code>
53 * system property.
54 *
55 * @see Util
56 */
57public interface UtilDelegate {
58
59    /**
60     * Delegation call for {@link Util#mapSystemException}.
61     */
62    RemoteException mapSystemException(SystemException ex);
63
64    /**
65     * Delegation call for {@link Util#writeAny}.
66     */
67    void writeAny(OutputStream out, Object obj);
68
69    /**
70     * Delegation call for {@link Util#readAny}.
71     */
72    java.lang.Object readAny(InputStream in);
73
74    /**
75     * Delegation call for {@link Util#writeRemoteObject}.
76     */
77    void writeRemoteObject(OutputStream out, Object obj);
78
79    /**
80     * Delegation call for {@link Util#writeAbstractObject}.
81     */
82    void writeAbstractObject(OutputStream out, Object obj);
83
84    /**
85     * Delegation call for {@link Util#registerTarget}.
86     */
87    void registerTarget(Tie tie, Remote target);
88
89    /**
90     * Delegation call for {@link Util#unexportObject}.
91     */
92    void unexportObject(Remote target) throws java.rmi.NoSuchObjectException;
93
94    /**
95     * Delegation call for {@link Util#getTie}.
96     */
97    Tie getTie(Remote target);
98
99    /**
100     * Delegation call for {@link Util#createValueHandler}.
101     */
102    ValueHandler createValueHandler();
103
104    /**
105     * Delegation call for {@link Util#getCodebase}.
106     */
107    String getCodebase(Class clz);
108
109    /**
110     * Delegation call for {@link Util#loadClass}.
111     */
112    Class loadClass(String className, String remoteCodebase, ClassLoader loader)
113        throws ClassNotFoundException;
114
115    /**
116     * Delegation call for {@link Util#isLocal}.
117     */
118    boolean isLocal(Stub stub) throws RemoteException;
119
120    /**
121     * Delegation call for {@link Util#wrapException}.
122     */
123    RemoteException wrapException(Throwable obj);
124
125    /**
126     * Delegation call for {@link Util#copyObject}.
127     */
128    Object copyObject(Object obj, ORB orb) throws RemoteException;
129
130    /**
131     * Delegation call for {@link Util#copyObjects}.
132     */
133    Object[] copyObjects(Object[] obj, ORB orb) throws RemoteException;
134
135}
136