'************************************************************************* '* '* $RCSfile: io_XPersistObject.xba,v $ '* '* $Revision: 1.1 $ '* '* last change:$Date: 2003-01-27 17:50:54 $ '* '* The Contents of this file are made available subject to the terms of '* either of the following licenses '* '* - GNU Lesser General Public License Version 2.1 '* - Sun Industry Standards Source License Version 1.1 '* '* Sun Microsystems Inc., October, 2000 '* '* GNU Lesser General Public License Version 2.1 '* ============================================= '* Copyright 2000 by Sun Microsystems, Inc. '* 901 San Antonio Road, Palo Alto, CA 94303, USA '* '* This library is free software; you can redistribute it and/or '* modify it under the terms of the GNU Lesser General Public '* License version 2.1, as published by the Free Software Foundation. '* '* This library 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 '* Lesser General Public License for more details. '* '* You should have received a copy of the GNU Lesser General Public '* License along with this library; if not, write to the Free Software '* Foundation, Inc., 59 Temple Place, Suite 330, Boston, '* MA 02111-1307 USA '* '* '* Sun Industry Standards Source License Version 1.1 '* ================================================= '* The contents of this file are subject to the Sun Industry Standards '* Source License Version 1.1 (the "License"); You may not use this file '* except in compliance with the License. You may obtain a copy of the '* License at http://www.openoffice.org/license.html. '* '* Software provided under this License is provided on an "AS IS" basis, '* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, '* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, '* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. '* See the License for the specific provisions governing your rights and '* obligations concerning the Software. '* '* The Initial Developer of the Original Code is: Sun Microsystems, Inc. '* '* Copyright: 2000 by Sun Microsystems, Inc. '* '* All Rights Reserved. '* '* Contributor(s): _______________________________________ '* '* '************************************************************************* '************************************************************************* ' Be sure that all variables are dimensioned: option explicit '************************************************************************* ' This Interface/Service test depends on the following GLOBAL variables, ' which must be specified in the object creation: ' - Global oPersistInstance As Object '************************************************************************* Sub RunTest() '************************************************************************* ' INTERFACE: ' com.sun.star.io.XPersistObject '************************************************************************* On Error Goto ErrHndl Dim bOK As Boolean Dim oMarkIn, oMarkOut, oOutStrm, oInStrm As Object Dim oDummy, oCopy, oPipe As Object Dim uuidString As String Dim UUID(), UUIDnew() As Variant Dim i As Integer if isNull(oPersistInstance) Then Out.Log("oPersistInstance is Empty! No oPersistInstance in main created?") Exit Sub end if Test.StartMethod("getServiceName()") bOK = true bOK = bOK AND (VarType(oObj.getServiceName()) = 8) Test.MethodTested("getServiceName()", bOK) if (hasUnoInterfaces(oObj,"com.sun.star.lang.XTypeProvider")) then 'get ImplementationID Out.Log("Before writing object, rememeber it's implementation ID.") uuidString = "" UUID = oObj.getImplementationId() for i = 0 to ubound(UUID()) uuidString = uuidString & UUID(i) & "; " next i Out.Log("ImplementationID: " & uuidString) endif oDummy = oPersistInstance oPipe = createUNOService("com.sun.star.io.Pipe") oMarkOut = createUNOService("com.sun.star.io.MarkableOutputStream") oMarkIn = createUNOService("com.sun.star.io.MarkableInputStream") oOutStrm = createUNOService("com.sun.star.io.ObjectOutputStream") oInStrm = createUNOService("com.sun.star.io.ObjectInputStream") 'made chain oOutStrm.setOutputStream(oMarkOut) oMarkOut.setOutputStream(oPipe) oMarkIn.setInputStream(oPipe) oInStrm.setInputStream(oMarkIn) Test.StartMethod("write()") Test.StartMethod("read()") bOK = true 'write dummy oOutStrm.writeObject(oDummy) oObj.write(oOutStrm) 'read copy oCopy = oInStrm.readObject() oObj.read(oInStrm) if (hasUnoInterfaces(oObj,"com.sun.star.lang.XTypeProvider")) then Out.Log("After reading object, get it's implementation ID.") uuidString = "" UUIDnew = oObj.getImplementationId() for i = 0 to ubound(UUID()) bOK = bOK AND (UUID(i) = UUIDnew(i)) uuidString = uuidString & UUIDnew(i) & "; " next i Out.Log("ImplementationID: " & uuidString) endif Test.MethodTested("write()", bOK) Test.MethodTested("read()", bOK) ReCreateObj() Exit Sub ErrHndl: Test.Exception() bOK = false resume next End Sub