gnu.CORBA.Interceptor

Class Registrator

Implemented Interfaces:
IDLEntity, Object, ORBInitInfo, ORBInitInfoOperations, Serializable

public class Registrator
extends LocalObject
implements ORBInitInfo

Collects interceptors, references and factories into arrays during registration. As the class is security sensitive, the most of the fields are private.

Field Summary

ArrayList<E>
m_initializers
The initializers.
Hashtable<K,V>
m_policyFactories
The policy factories.
static String
m_prefix
The agreed properties prefix.
TreeMap<K,V>
m_references
The registered references.

Constructor Summary

Registrator(ORB_1_4 an_orb, Properties props, String[] an_args)
Create the interceptor collection from the given properties, using the agreed naming convention.

Method Summary

void
add_client_request_interceptor(ClientRequestInterceptor interceptor)
Register the client request interceptor.
void
add_ior_interceptor(IORInterceptor interceptor)
Register the IOR (object reference) interceptor.
void
add_server_request_interceptor(ServerRequestInterceptor interceptor)
Register the server request interceptor.
int
allocate_slot_id()
Allocate a new slot for request - specific records.
String[]
arguments()
Get string array, passed to ORB.init.
CodecFactory
codec_factory()
Get the codec factory.
ClientRequestInterceptor[]
getClientRequestInterceptors()
IORInterceptor[]
getIORInterceptors()
Map<K,V>
getRegisteredReferences()
Get the map of the registered references.
ServerRequestInterceptor[]
getServerRequestInterceptors()
boolean
hasClientRequestInterceptors()
Check if any interceptors of this type were registered.
boolean
hasIorInterceptors()
Check if any interceptors of this type were registered.
boolean
hasServerRequestInterceptors()
Check if any interceptors of this type were registered.
String
orb_id()
Get the ORB's id, currently using .toString.
void
post_init()
Called by ORB as a post-init for all initializers.
void
pre_init()
Called by ORB as a pre_init for all initializers.
void
register_initial_reference(String object_name, Object object)
Register reference.
void
register_policy_factory(int policy_type, PolicyFactory policy_factory)
Accumulates the policy factory map.
Object
resolve_initial_references(String object_name)
Delegates to ORB.

Methods inherited from class org.omg.CORBA.LocalObject

_create_request, _create_request, _duplicate, _get_domain_managers, _get_interface, _get_interface_def, _get_policy, _hash, _invoke, _is_a, _is_equivalent, _is_local, _non_existent, _orb, _release, _releaseReply, _request, _request, _servant_postinvoke, _set_policy_override, validate_connection

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

m_initializers

public ArrayList<E> m_initializers
The initializers.

m_policyFactories

public Hashtable<K,V> m_policyFactories
The policy factories.

m_prefix

public static final String m_prefix
The agreed properties prefix.
Field Value:
"org.omg.PortableInterceptor.ORBInitializerClass."

m_references

public TreeMap<K,V> m_references
The registered references. To avoid exposing the ORB's references map, the are added by ORB from inside the ORB code. The ORB is responsible for taking them from this field between pre_init and post_init.

Constructor Details

Registrator

public Registrator(ORB_1_4 an_orb,
                   Properties props,
                   String[] an_args)
Create the interceptor collection from the given properties, using the agreed naming convention.
Parameters:
an_orb - the ORB being initialised.
props - the cumulated set of properties where the orb initializer pattern is searched.
an_args - the argument string array, passed to ORB.init.

Method Details

add_client_request_interceptor

public void add_client_request_interceptor(ClientRequestInterceptor interceptor)
            throws DuplicateName
Register the client request interceptor.
Specified by:
add_client_request_interceptor in interface ORBInitInfoOperations
Parameters:
interceptor - the interceptor to register.
Throws:
DuplicateName - if the interceptor name is not an empty string and an interceptor with this name is already registered with the ORB being created.

add_ior_interceptor

public void add_ior_interceptor(IORInterceptor interceptor)
            throws DuplicateName
Register the IOR (object reference) interceptor. If the registered interceptor implements the extended IORInterceptor_3_0 interface, ORB will call its additional methods, defined in the IORInterceptor_3_0Operations.
Specified by:
add_ior_interceptor in interface ORBInitInfoOperations
Parameters:
interceptor - the interceptor to register.
Throws:
DuplicateName - if the interceptor name is not an empty string and an interceptor with this name is already registered with the ORB being created.

add_server_request_interceptor

public void add_server_request_interceptor(ServerRequestInterceptor interceptor)
            throws DuplicateName
Register the server request interceptor.
Specified by:
add_server_request_interceptor in interface ORBInitInfoOperations
Parameters:
interceptor - the interceptor to register.
Throws:
DuplicateName - if the interceptor name is not an empty string and an interceptor with this name is already registered with the ORB being created.

allocate_slot_id

public int allocate_slot_id()
Allocate a new slot for request - specific records.
Specified by:
allocate_slot_id in interface ORBInitInfoOperations

arguments

public String[] arguments()
Get string array, passed to ORB.init.
Specified by:
arguments in interface ORBInitInfoOperations

codec_factory

public CodecFactory codec_factory()
Get the codec factory.
Specified by:
codec_factory in interface ORBInitInfoOperations

getClientRequestInterceptors

public ClientRequestInterceptor[] getClientRequestInterceptors()

getIORInterceptors

public IORInterceptor[] getIORInterceptors()

getRegisteredReferences

public Map<K,V> getRegisteredReferences()
Get the map of the registered references. The ORB calls this method to import the references into its references map.

getServerRequestInterceptors

public ServerRequestInterceptor[] getServerRequestInterceptors()

hasClientRequestInterceptors

public boolean hasClientRequestInterceptors()
Check if any interceptors of this type were registered.

hasIorInterceptors

public boolean hasIorInterceptors()
Check if any interceptors of this type were registered.

hasServerRequestInterceptors

public boolean hasServerRequestInterceptors()
Check if any interceptors of this type were registered.

orb_id

public String orb_id()
Get the ORB's id, currently using .toString.
Specified by:
orb_id in interface ORBInitInfoOperations

post_init

public void post_init()
Called by ORB as a post-init for all initializers. After this call, the interceptor sets are fixed and redundant information is discarded.

pre_init

public void pre_init()
Called by ORB as a pre_init for all initializers.

register_initial_reference

public void register_initial_reference(String object_name,
                                       Object object)
            throws InvalidName
Register reference.
Specified by:
register_initial_reference in interface ORBInitInfoOperations

register_policy_factory

public void register_policy_factory(int policy_type,
                                    PolicyFactory policy_factory)
Accumulates the policy factory map.
Specified by:
register_policy_factory in interface ORBInitInfoOperations

resolve_initial_references

public Object resolve_initial_references(String object_name)
            throws InvalidName
Delegates to ORB.
Specified by:
resolve_initial_references in interface ORBInitInfoOperations

Registrator.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.