Files
odfstudio/qadevOOo/testdocs/qadevlibs/source/com/sun/star/cmp/MyPersistObject.java
T
Andrea Gelmini 6e696502fc Fix typos
Change-Id: I3e012ec27be31748afd2486366ede02939ca3cf1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210567
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-09-10 21:27:55 +02:00

346 lines
11 KiB
Java

/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 .
*/
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;
}
}
private static final boolean verbose = false;
public static final String __serviceName =
"com.sun.star.cmp.PersistObject";
public static 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;
}
/**
* Function 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);
}
/**
* Function 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);
}
/**
* Function 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 Byte.valueOf(by);
if ( property.equals(props[1].Name))
return Integer.valueOf(i);
if ( property.equals(props[2].Name))
return Character.valueOf(c);
if ( property.equals(props[3].Name))
return Double.valueOf(d);
if ( property.equals(props[4].Name))
return Float.valueOf(f);
if ( property.equals(props[5].Name))
return Short.valueOf(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) {
return serviceName.equals(__serviceName);
}
/**
* Function for reading all supported services
*
* @return An array 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 an <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