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