1*ef39d40dSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*ef39d40dSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*ef39d40dSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*ef39d40dSAndrew Rist * distributed with this work for additional information 6*ef39d40dSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*ef39d40dSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*ef39d40dSAndrew Rist * "License"); you may not use this file except in compliance 9*ef39d40dSAndrew Rist * with the License. You may obtain a copy of the License at 10*ef39d40dSAndrew Rist * 11*ef39d40dSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*ef39d40dSAndrew Rist * 13*ef39d40dSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*ef39d40dSAndrew Rist * software distributed under the License is distributed on an 15*ef39d40dSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*ef39d40dSAndrew Rist * KIND, either express or implied. See the License for the 17*ef39d40dSAndrew Rist * specific language governing permissions and limitations 18*ef39d40dSAndrew Rist * under the License. 19*ef39d40dSAndrew Rist * 20*ef39d40dSAndrew Rist *************************************************************/ 21*ef39d40dSAndrew Rist 22*ef39d40dSAndrew Rist 23cdf0e10cSrcweir package basicrunner; 24cdf0e10cSrcweir 25cdf0e10cSrcweir import com.sun.star.uno.UnoRuntime; 26cdf0e10cSrcweir import com.sun.star.container.XSet; 27cdf0e10cSrcweir import com.sun.star.lang.XMultiServiceFactory; 28cdf0e10cSrcweir import com.sun.star.container.ElementExistException; 29cdf0e10cSrcweir import com.sun.star.lang.IllegalArgumentException; 30cdf0e10cSrcweir import com.sun.star.connection.ConnectionSetupException; 31cdf0e10cSrcweir import lib.TestParameters; 32cdf0e10cSrcweir import share.LogWriter; 33cdf0e10cSrcweir import basicrunner.basichelper.Connector; 34cdf0e10cSrcweir import basicrunner.basichelper.DocumentHandler; 35cdf0e10cSrcweir import basicrunner.basichelper.ThreadRunner; 36cdf0e10cSrcweir import basicrunner.basichelper.AttributeList; 37cdf0e10cSrcweir import basicrunner.basichelper.Filter; 38cdf0e10cSrcweir import basicrunner.basichelper.DispatchProviderInterceptor; 39cdf0e10cSrcweir 40cdf0e10cSrcweir /** 41cdf0e10cSrcweir * This class provides a BasicHandler. All classes for the communication with 42cdf0e10cSrcweir * and handling of the BASIC tests are instantiated and inserted int the 43cdf0e10cSrcweir * MultiServiceFactory of StarOffice. 44cdf0e10cSrcweir */ 45cdf0e10cSrcweir public class BasicHandlerProvider { 46cdf0e10cSrcweir 47cdf0e10cSrcweir /** The BassicHandler **/ 48cdf0e10cSrcweir static BasicHandler oHandler = null; 49cdf0e10cSrcweir /** The Connector **/ 50cdf0e10cSrcweir static Connector oConnector = null; 51cdf0e10cSrcweir /** The DocumentHandler **/ 52cdf0e10cSrcweir static DocumentHandler oDocumentHandler = null; 53cdf0e10cSrcweir /** The Thread Runner **/ 54cdf0e10cSrcweir static ThreadRunner oThreadRunner = null; 55cdf0e10cSrcweir /** The AttributeList **/ 56cdf0e10cSrcweir static AttributeList oAttributeList = null; 57cdf0e10cSrcweir /** The Filter **/ 58cdf0e10cSrcweir static Filter oFilter = null; 59cdf0e10cSrcweir /** The DispatchProviderInterceptor **/ 60cdf0e10cSrcweir static DispatchProviderInterceptor oCeptor = null ; 61cdf0e10cSrcweir /** The MultiServiceFactory from StarOffice **/ 62cdf0e10cSrcweir static XMultiServiceFactory MSF = null; 63cdf0e10cSrcweir /** IS this a new connection or an existing one? **/ 64cdf0e10cSrcweir static boolean bIsNewConnection = true; 65cdf0e10cSrcweir 66cdf0e10cSrcweir /** 67cdf0e10cSrcweir * Get a BasicHandler 68cdf0e10cSrcweir * @param tParam Test parameters. 69cdf0e10cSrcweir * @param log A log writer 70cdf0e10cSrcweir * @return An instance of BasicHandler 71cdf0e10cSrcweir */ getHandler(TestParameters tParam, LogWriter log)72cdf0e10cSrcweir static public BasicHandler getHandler(TestParameters tParam, LogWriter log) { 73cdf0e10cSrcweir 74cdf0e10cSrcweir XMultiServiceFactory xMSF = (XMultiServiceFactory)tParam.getMSF(); 75cdf0e10cSrcweir 76cdf0e10cSrcweir if (!xMSF.equals(MSF)) { 77cdf0e10cSrcweir MSF = xMSF; 78cdf0e10cSrcweir oHandler = new BasicHandler(tParam); 79cdf0e10cSrcweir oConnector = new Connector(); 80cdf0e10cSrcweir oFilter = new Filter(); 81cdf0e10cSrcweir oDocumentHandler = new DocumentHandler(); 82cdf0e10cSrcweir oThreadRunner = new ThreadRunner(xMSF); 83cdf0e10cSrcweir oCeptor = new DispatchProviderInterceptor() ; 84cdf0e10cSrcweir oAttributeList = new AttributeList(); 85cdf0e10cSrcweir XSet xMSFSet = (XSet)UnoRuntime.queryInterface(XSet.class, xMSF); 86cdf0e10cSrcweir 87cdf0e10cSrcweir try { 88cdf0e10cSrcweir xMSFSet.insert(oHandler); 89cdf0e10cSrcweir xMSFSet.insert(oConnector); 90cdf0e10cSrcweir xMSFSet.insert(oFilter); 91cdf0e10cSrcweir xMSFSet.insert(oDocumentHandler); 92cdf0e10cSrcweir xMSFSet.insert(oThreadRunner); 93cdf0e10cSrcweir xMSFSet.insert(oCeptor); 94cdf0e10cSrcweir xMSFSet.insert(oAttributeList); 95cdf0e10cSrcweir } catch (ElementExistException e) { 96cdf0e10cSrcweir System.out.println(e.toString()); 97cdf0e10cSrcweir } catch (IllegalArgumentException e) { 98cdf0e10cSrcweir System.out.println(e.toString()); 99cdf0e10cSrcweir } 100cdf0e10cSrcweir 101cdf0e10cSrcweir try { 102cdf0e10cSrcweir oHandler.Connect(util.utils.getFullURL((String)tParam.get("BASICBRIDGE")), 103cdf0e10cSrcweir tParam, xMSF, log); 104cdf0e10cSrcweir } catch (ConnectionSetupException e) { 105cdf0e10cSrcweir System.out.println("Can't connect to BASIC !"); 106cdf0e10cSrcweir } 107cdf0e10cSrcweir 108cdf0e10cSrcweir bIsNewConnection = true; 109cdf0e10cSrcweir } else { 110cdf0e10cSrcweir bIsNewConnection = false; 111cdf0e10cSrcweir } 112cdf0e10cSrcweir 113cdf0e10cSrcweir return oHandler; 114cdf0e10cSrcweir } 115cdf0e10cSrcweir 116cdf0e10cSrcweir /** 117cdf0e10cSrcweir * Is this a new connection? 118cdf0e10cSrcweir * @return True, if the connection did not exist before. 119cdf0e10cSrcweir */ isNewConnection()120cdf0e10cSrcweir static public boolean isNewConnection() { 121cdf0e10cSrcweir return bIsNewConnection; 122cdf0e10cSrcweir } 123cdf0e10cSrcweir 124cdf0e10cSrcweir /** 125cdf0e10cSrcweir * Dispose the BasicHandler 126cdf0e10cSrcweir */ disposeHandler()127cdf0e10cSrcweir static public void disposeHandler() { 128cdf0e10cSrcweir 129cdf0e10cSrcweir try { 130cdf0e10cSrcweir if (oHandler != null) { 131cdf0e10cSrcweir oHandler.dispose(); 132cdf0e10cSrcweir } 133cdf0e10cSrcweir if (MSF != null) { 134cdf0e10cSrcweir XSet xMSFSet = (XSet)UnoRuntime.queryInterface(XSet.class, MSF); 135cdf0e10cSrcweir xMSFSet.remove(oHandler); 136cdf0e10cSrcweir xMSFSet.remove(oFilter); 137cdf0e10cSrcweir xMSFSet.remove(oConnector); 138cdf0e10cSrcweir xMSFSet.remove(oDocumentHandler); 139cdf0e10cSrcweir xMSFSet.remove(oThreadRunner); 140cdf0e10cSrcweir xMSFSet.remove(oAttributeList); 141cdf0e10cSrcweir } 142cdf0e10cSrcweir } catch (Exception e){ 143cdf0e10cSrcweir System.out.println(e.toString()); 144cdf0e10cSrcweir } 145cdf0e10cSrcweir 146cdf0e10cSrcweir MSF = null; 147cdf0e10cSrcweir oHandler = null; 148cdf0e10cSrcweir } 149cdf0e10cSrcweir } 150