KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > jonathan > apis > stub_factories > StubFactory


1 /***
2  * Jonathan: an Open Distributed Processing Environment
3  * Copyright (C) 1999 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  * Release: 2.0
20  *
21  * Contact: jonathan@objectweb.org
22  *
23  * Author: Bruno Dumant
24  *
25  */

26
27
28 package org.objectweb.jonathan.apis.stub_factories;
29
30 import org.objectweb.jonathan.apis.kernel.JonathanException;
31 import org.objectweb.jonathan.apis.kernel.Context;
32 import org.objectweb.jonathan.apis.binding.Identifier;
33 import org.objectweb.jonathan.apis.protocols.SessionIdentifier;
34
35 /**
36  * A Stub factory is a factory for stubs...
37  */

38 public interface StubFactory {
39
40
41    /**
42     * Creates a new stub.
43     * <p>
44     * A stub plays two roles:
45     * <ul>
46     * <li> It is the local representative of a (remote) object, and thus should
47     * bear a set of identifiers for that remote object;
48     * <li> It is part of the binding between the client and the server, and is
49     * thus related to a given protocol. The session identifier provided as an
50     * argument is the manifestation of this relation. It can be used to
51     * obtain a session allowing the stub to send data to the remote object.
52     * </ul>
53     *
54     * @param session_id a session identifier, to be used to send marshalled
55     * data to the object represented by the stub;
56     * @param ids the set of identifiers of the stub;
57     * @param hints other data possibly used to create the stub.
58     * @return a stub
59     * @exception JonathanException if something goes wrong.
60     */

61    Object JavaDoc newStub(SessionIdentifier session_id, Identifier[] ids,Context hints)
62       throws JonathanException;
63 }
64
Popular Tags