xref: /aoo41x/main/bean/com/sun/star/comp/beans/Wrapper.java (revision d4cc1e8c)
1*d4cc1e8cSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*d4cc1e8cSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*d4cc1e8cSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*d4cc1e8cSAndrew Rist  * distributed with this work for additional information
6*d4cc1e8cSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*d4cc1e8cSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*d4cc1e8cSAndrew Rist  * "License"); you may not use this file except in compliance
9*d4cc1e8cSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*d4cc1e8cSAndrew Rist  *
11*d4cc1e8cSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*d4cc1e8cSAndrew Rist  *
13*d4cc1e8cSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*d4cc1e8cSAndrew Rist  * software distributed under the License is distributed on an
15*d4cc1e8cSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*d4cc1e8cSAndrew Rist  * KIND, either express or implied.  See the License for the
17*d4cc1e8cSAndrew Rist  * specific language governing permissions and limitations
18*d4cc1e8cSAndrew Rist  * under the License.
19*d4cc1e8cSAndrew Rist  *
20*d4cc1e8cSAndrew Rist  *************************************************************/
21*d4cc1e8cSAndrew Rist 
22*d4cc1e8cSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir package com.sun.star.comp.beans;
25cdf0e10cSrcweir 
26cdf0e10cSrcweir import com.sun.star.uno.UnoRuntime;
27cdf0e10cSrcweir 
28cdf0e10cSrcweir //==========================================================================
29cdf0e10cSrcweir /**	Wrapper base class for UNO services which emulates the upcoming
30cdf0e10cSrcweir  	mode of automatic runtime Java classes to get rid of the need for
31cdf0e10cSrcweir 	queryInterface.
32cdf0e10cSrcweir 
33cdf0e10cSrcweir 	Because its not worth the efford to create a runtime generated wrapper
34cdf0e10cSrcweir 	for this purpose, as it might be for OOo 2.0, you still have to use
35cdf0e10cSrcweir 	UnoRuntime.queryInterface() for interfaces which are optional or come
36cdf0e10cSrcweir 	from a subclass.  But for non optional interfaces you can already
37cdf0e10cSrcweir 	directly call their methods.
38cdf0e10cSrcweir 
39cdf0e10cSrcweir 	This wrapper will only work for UNO objects via a bridge, not for
40cdf0e10cSrcweir 	direct Java objects.
41cdf0e10cSrcweir 
42cdf0e10cSrcweir     @since OOo 2.0.0
43cdf0e10cSrcweir  */
44cdf0e10cSrcweir class Wrapper
45cdf0e10cSrcweir 	implements
46cdf0e10cSrcweir         com.sun.star.lib.uno.Proxy,
47cdf0e10cSrcweir             // see the comment in com.sun.star.lib.uno.bridges.java_remote
48cdf0e10cSrcweir             // .java_remote_bridge.mapInterfaceTo for the consequences of this
49cdf0e10cSrcweir             // hack
50cdf0e10cSrcweir 		com.sun.star.uno.IQueryInterface,
51cdf0e10cSrcweir 		com.sun.star.lang.XComponent
52cdf0e10cSrcweir {
53cdf0e10cSrcweir 	private com.sun.star.uno.IQueryInterface xQueryInterface;
54cdf0e10cSrcweir 	private com.sun.star.lang.XComponent xComponent;
55cdf0e10cSrcweir 
Wrapper( com.sun.star.uno.XInterface xProxy )56cdf0e10cSrcweir 	public Wrapper( com.sun.star.uno.XInterface xProxy )
57cdf0e10cSrcweir 	{
58cdf0e10cSrcweir 		xQueryInterface = (com.sun.star.uno.IQueryInterface) xProxy;
59cdf0e10cSrcweir 		xComponent = (com.sun.star.lang.XComponent)
60cdf0e10cSrcweir 			UnoRuntime.queryInterface(
61cdf0e10cSrcweir 				com.sun.star.lang.XComponent.class, xProxy );
62cdf0e10cSrcweir 	}
63cdf0e10cSrcweir 
64cdf0e10cSrcweir 	//==============================================================
65cdf0e10cSrcweir 	// com.sun.star.uno.IQueryInterface
66cdf0e10cSrcweir 	//--------------------------------------------------------------
67cdf0e10cSrcweir 
getOid()68cdf0e10cSrcweir 	public String getOid()
69cdf0e10cSrcweir 	{
70cdf0e10cSrcweir 		return xQueryInterface.getOid();
71cdf0e10cSrcweir 	}
72cdf0e10cSrcweir 
isSame( Object aObject )73cdf0e10cSrcweir 	public boolean isSame( Object aObject )
74cdf0e10cSrcweir 	{
75cdf0e10cSrcweir 		return xQueryInterface.isSame( aObject );
76cdf0e10cSrcweir 	}
77cdf0e10cSrcweir 
queryInterface( com.sun.star.uno.Type aType )78cdf0e10cSrcweir 	public Object queryInterface( com.sun.star.uno.Type aType )
79cdf0e10cSrcweir 	{
80cdf0e10cSrcweir //System.err.println( "Wrapper::queryInterface(" + aType + ")" );
81cdf0e10cSrcweir 		return xQueryInterface.queryInterface( aType );
82cdf0e10cSrcweir 	}
83cdf0e10cSrcweir 
84cdf0e10cSrcweir 	//==============================================================
85cdf0e10cSrcweir 	// com.sun.star.lang.XComponent
86cdf0e10cSrcweir 	//--------------------------------------------------------------
87cdf0e10cSrcweir 
dispose( )88cdf0e10cSrcweir 	public void dispose(  )
89cdf0e10cSrcweir 	{
90cdf0e10cSrcweir 		xComponent.dispose();
91cdf0e10cSrcweir 	}
92cdf0e10cSrcweir 
addEventListener( com.sun.star.lang.XEventListener xListener )93cdf0e10cSrcweir 	public void addEventListener( /*IN*/ com.sun.star.lang.XEventListener xListener )
94cdf0e10cSrcweir 	{
95cdf0e10cSrcweir 		xComponent.addEventListener( xListener );
96cdf0e10cSrcweir 	}
97cdf0e10cSrcweir 
removeEventListener( com.sun.star.lang.XEventListener xListener )98cdf0e10cSrcweir 	public void removeEventListener( /*IN*/ com.sun.star.lang.XEventListener xListener )
99cdf0e10cSrcweir 	{
100cdf0e10cSrcweir 		xComponent.removeEventListener( xListener );
101cdf0e10cSrcweir 	}
102cdf0e10cSrcweir };
103cdf0e10cSrcweir 
104cdf0e10cSrcweir 
105