diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2004-03-09 09:18:45 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2004-03-09 09:18:45 +0000 |
commit | c9f2e874753653c3cbffaad6103514d68b2cf0be (patch) | |
tree | b8c5f2fab0c73d8dfced2c4753a5ce9d16edc4b0 /qadevOOo/testdocs | |
parent | 4629e95fff919be4da232036e730f307e711271b (diff) |
INTEGRATION: CWS fwkmerge1 (1.1.8); FILE ADDED
2004/02/18 12:57:19 sw 1.1.8.1: #115240#
Diffstat (limited to 'qadevOOo/testdocs')
-rw-r--r-- | qadevOOo/testdocs/qadevlibs/source/com/sun/star/cmp/MyPersistObject.java | 408 |
1 files changed, 408 insertions, 0 deletions
diff --git a/qadevOOo/testdocs/qadevlibs/source/com/sun/star/cmp/MyPersistObject.java b/qadevOOo/testdocs/qadevlibs/source/com/sun/star/cmp/MyPersistObject.java new file mode 100644 index 000000000000..d7e13918baa5 --- /dev/null +++ b/qadevOOo/testdocs/qadevlibs/source/com/sun/star/cmp/MyPersistObject.java @@ -0,0 +1,408 @@ +/************************************************************************* + * + * $RCSfile: MyPersistObject.java,v $ + * + * $Revision: 1.2 $ + * + * last change: $Date: 2004-03-09 10:18:45 $ + * + * 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): _______________________________________ + * + * + ************************************************************************/ +package com.sun.star.cmp; + +import com.sun.star.io.XPersistObject; +import com.sun.star.io.XObjectInputStream; +import com.sun.star.io.XObjectOutputStream; +import com.sun.star.beans.XPropertySet; +import com.sun.star.beans.XPropertySetInfo; +import com.sun.star.beans.Property; +import com.sun.star.beans.XPropertyChangeListener; +import com.sun.star.beans.XVetoableChangeListener; +import com.sun.star.lang.XMultiServiceFactory; +import com.sun.star.lang.XSingleServiceFactory; +import com.sun.star.lang.XServiceInfo; +import com.sun.star.uno.XInterface; +import com.sun.star.lang.XTypeProvider; +import com.sun.star.registry.XRegistryKey; +import com.sun.star.comp.loader.FactoryHelper; +import com.sun.star.uno.Type; + +/** + * Class MyPersistObject implements an XPersistObject, XServiceInfo, + * XTypeProvider and XPropertySet. + * + * Warning: In XPropertySet only the following methods that are + * used for testing are really implemented: + * + * - public XPropertySetInfo getPropertySetInfo() + * - public void setPropertyValue(String property, Object value) + * - public Object getPropertyValue(String property) + */ +public class MyPersistObject implements XPersistObject, XTypeProvider, + XServiceInfo, XPropertySet { + + private class MyPropertySetInfo implements XPropertySetInfo { + Property[] _props; + public MyPropertySetInfo(Property[] props) { + _props = props; + } + public Property[] getProperties() { + return _props; + } + public Property getPropertyByName(String name) { + int i = getPropertyIndexByName(name); + return i>0?_props[i]:null; + } + public int getPropertyIndexByName(String name) { + for ( int i=0; i<_props.length; i++ ) + if (name.equals(_props[i].Name)) + return i; + return -1; + } + public boolean hasPropertyByName(String name) { + int i = getPropertyIndexByName(name); + return i>0?true:false; + } + } + + static private final boolean verbose = false; + + static public final String __serviceName = + "com.sun.star.cmp.PersistObject"; + static public final String __implName = + "com.sun.star.cmp.MyPersistObject"; + + // lots of props to write + Property[] props; + private byte by; + private int i; + private char c; + private double d; + private float f; + private short s; + private String st; + // property set info + XPropertySetInfo xInfo; + + /** + * Constructor: sets all properties + **/ + public MyPersistObject() { + int prop_count = 7; + props = new Property[prop_count]; + for (int i=0; i<prop_count; i++ ) { + props[i] = new Property(); + } + by = 1; + props[0].Name = "byte"; + i = 3; + props[1].Name = "int"; + c = 'c'; + props[2].Name = "char"; + d = 3.142; + props[3].Name = "double"; + f = 2.718f; + props[4].Name = "float"; + s = 1; + props[5].Name = "short"; + st = "Though this be madness, yet there is method in 't."; + props[6].Name = "String"; + xInfo = new MyPropertySetInfo(props); + } + /** + * This function provides the service name + * @return the service name + * @see com.sun.star.io.XPersistObject + */ + public String getServiceName() { + if ( verbose ) { + System.out.println("get service name"); + } + return __serviceName; + } + + /** + * Fuction reads properties from this input stream + * @param inStream the input stream + * @see com.sun.star.io.XPersistObject + */ + public void read(XObjectInputStream inStream) + throws com.sun.star.io.IOException { + s = inStream.readShort(); + i = inStream.readLong(); + by = inStream.readByte(); + c = inStream.readChar(); + d = inStream.readDouble(); + f = inStream.readFloat(); + st = inStream.readUTF(); + if ( verbose ) + System.out.println("read called" + s + " " + i + " " + st); + } + + /** + * Fuction writes properties on this output stream + * @param outStream the output stream + * @see com.sun.star.io.XPersistObject + */ + public void write(XObjectOutputStream outStream) + throws com.sun.star.io.IOException { + if ( verbose ) + System.out.println("write called"); + outStream.writeShort(s); + outStream.writeLong(i); + outStream.writeByte(by); + outStream.writeChar(c); + outStream.writeDouble(d); + outStream.writeFloat(f); + outStream.writeUTF(st); + + } + + + /** + * Fuction to get information about the property set. + * @return The information + * @see com.sun.star.io.XPropertySet + */ + public XPropertySetInfo getPropertySetInfo() { + return xInfo; + } + + /** + * Set a property value + * @param property The name of the property. + * @param value The new value of the property. + * @see com.sun.star.io.XPropertySet + */ + public void setPropertyValue(String property, Object value) { + if ( property.equals(props[0].Name)) + by = ((Byte)value).byteValue(); + if ( property.equals(props[1].Name)) + i = ((Integer)value).intValue(); + if ( property.equals(props[2].Name)) + c = ((Character)value).charValue(); + if ( property.equals(props[3].Name)) + d = ((Double)value).doubleValue(); + if ( property.equals(props[4].Name)) + f = ((Float)value).floatValue(); + if ( property.equals(props[5].Name)) + s = ((Short)value).shortValue(); + if ( property.equals(props[6].Name)) + st = (String)value; + } + + /** + * Get a property value + * @param property The property name. + * @return The value of the property. + * @see com.sun.star.io.XPropertySet + */ + public Object getPropertyValue(String property) { + if ( property.equals(props[0].Name)) + return new Byte(by); + if ( property.equals(props[1].Name)) + return new Integer(i); + if ( property.equals(props[2].Name)) + return new Character(c); + if ( property.equals(props[3].Name)) + return new Double(d); + if ( property.equals(props[4].Name)) + return new Float(f); + if ( property.equals(props[5].Name)) + return new Short(s); + if ( property.equals(props[6].Name)) + return st; + return new Object(); + } + + /** + * Empty implementation: not needed for tests. + */ + public void addPropertyChangeListener(String aPropertyName, + XPropertyChangeListener xListener ) {} + + /** + * Empty implementation: not needed for tests. + */ + public void removePropertyChangeListener(String aPropertyName, + XPropertyChangeListener aListener ) {} + + /** + * Empty implementation: not needed for tests. + */ + public void addVetoableChangeListener(String PropertyName, + XVetoableChangeListener aListener ) {} + + /** + * Empty implementation: not needed for tests. + */ + public void removeVetoableChangeListener(String PropertyName, + XVetoableChangeListener aListener ) {} + + /** + * Get all implemented types of this class. + * @return An array of implemented interface types. + * @see com.sun.star.lang.XTypeProvider + */ + public Type[] getTypes() { + Type[] type = new Type[5]; + type[0] = new Type(XInterface.class); + type[1] = new Type(XTypeProvider.class); + type[2] = new Type(XPersistObject.class); + type[3] = new Type(XServiceInfo.class); + type[4] = new Type(XPropertySet.class); + return type; + } + + /** + * Get the implementation id. + * @return An empty implementation id. + * @see com.sun.star.lang.XTypeProvider + */ + public byte[] getImplementationId() { + return new byte[0]; + } + /** + * Function for reading the implementation name. + * + * @return the implementation name + * @see com.sun.star.lang.XServiceInfo + */ + public String getImplementationName() { + return __implName; + } + + /** + * Does the implementation support this service? + * + * @param serviceName The name of the service in question + * @return true, if service is supported, false otherwise + * @see com.sun.star.lang.XServiceInfo + */ + public boolean supportsService(String serviceName) { + if(serviceName.equals(__serviceName)) + return true; + return false; + } + + /** + * Function for reading all supported services + * + * @return An aaray with all supported service names + * @see com.sun.star.lang.XServiceInfo + */ + public String[] getSupportedServiceNames() { + String[] supServiceNames = {__serviceName}; + return supServiceNames; + } + + /** + * + * Gives a factory for creating the service. + * This method is called by the <code>JavaLoader</code> + * <p> + * @return returns a <code>XSingleServiceFactory</code> for creating the component + * @param implName the name of the implementation for which a service is desired + * @param multiFactory the service manager to be used if needed + * @param regKey the registryKey + * @see com.sun.star.comp.loader.JavaLoader + */ + public static XSingleServiceFactory __getServiceFactory(String implName, + XMultiServiceFactory multiFactory, XRegistryKey regKey) + { + XSingleServiceFactory xSingleServiceFactory = null; + + if (implName.equals(MyPersistObject.class.getName())) + xSingleServiceFactory = FactoryHelper.getServiceFactory( + MyPersistObject.class, __serviceName, multiFactory, regKey); + + return xSingleServiceFactory; + } + + /** + * Writes the service information into the given registry key. + * This method is called by the <code>JavaLoader</code> + * <p> + * @return returns true if the operation succeeded + * @param regKey the registryKey + * @see com.sun.star.comp.loader.JavaLoader + */ + public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) { + return FactoryHelper.writeRegistryServiceInfo(MyPersistObject.class.getName(), + __serviceName, regKey); + } + + + + +} // finish class MyPersistObject + + + +//$Log: not supported by cvs2svn $ +//Revision 1.1.8.1 2004/02/18 12:57:19 sw +//#115240# +// +//Revision 1.1.6.1 2004/01/09 18:27:21 hr +//#i24240#: merge all changes from branch mws_fix645 -> mws_srx645 +// +//Revision 1.1.4.1 2004/01/06 14:40:54 vg +//INTEGRATION: CWS fwk03pp1 (1.1.2); FILE ADDED +//2003/11/20 12:24:03 sw 1.1.2.1: #112812# +// +//Revision 1.1.2.1 2003/11/20 12:24:03 sw +//#112812# +// +//Revision 1.1 2002/07/01 14:48:47 sg +//ADD: initial version +// |