merge the formfield patch from ooo-build
[ooovba.git] / bean / com / sun / star / comp / beans / Wrapper.java
blobb722ec3c678914abb7068542357f853e9f2d2c17
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: Wrapper.java,v $
10 * $Revision: 1.6 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 package com.sun.star.comp.beans;
33 import com.sun.star.uno.UnoRuntime;
35 //==========================================================================
36 /** Wrapper base class for UNO services which emulates the upcoming
37 mode of automatic runtime Java classes to get rid of the need for
38 queryInterface.
40 Because its not worth the efford to create a runtime generated wrapper
41 for this purpose, as it might be for OOo 2.0, you still have to use
42 UnoRuntime.queryInterface() for interfaces which are optional or come
43 from a subclass. But for non optional interfaces you can already
44 directly call their methods.
46 This wrapper will only work for UNO objects via a bridge, not for
47 direct Java objects.
49 @since OOo 2.0.0
51 class Wrapper
52 implements
53 com.sun.star.lib.uno.Proxy,
54 // see the comment in com.sun.star.lib.uno.bridges.java_remote
55 // .java_remote_bridge.mapInterfaceTo for the consequences of this
56 // hack
57 com.sun.star.uno.IQueryInterface,
58 com.sun.star.lang.XComponent
60 private com.sun.star.uno.IQueryInterface xQueryInterface;
61 private com.sun.star.lang.XComponent xComponent;
63 public Wrapper( com.sun.star.uno.XInterface xProxy )
65 xQueryInterface = (com.sun.star.uno.IQueryInterface) xProxy;
66 xComponent = (com.sun.star.lang.XComponent)
67 UnoRuntime.queryInterface(
68 com.sun.star.lang.XComponent.class, xProxy );
71 //==============================================================
72 // com.sun.star.uno.IQueryInterface
73 //--------------------------------------------------------------
75 public String getOid()
77 return xQueryInterface.getOid();
80 public boolean isSame( Object aObject )
82 return xQueryInterface.isSame( aObject );
85 public Object queryInterface( com.sun.star.uno.Type aType )
87 //System.err.println( "Wrapper::queryInterface(" + aType + ")" );
88 return xQueryInterface.queryInterface( aType );
91 //==============================================================
92 // com.sun.star.lang.XComponent
93 //--------------------------------------------------------------
95 public void dispose( )
97 xComponent.dispose();
100 public void addEventListener( /*IN*/ com.sun.star.lang.XEventListener xListener )
102 xComponent.addEventListener( xListener );
105 public void removeEventListener( /*IN*/ com.sun.star.lang.XEventListener xListener )
107 xComponent.removeEventListener( xListener );