diff options
Diffstat (limited to 'qadevOOo/testdocs/backend')
3 files changed, 324 insertions, 0 deletions
diff --git a/qadevOOo/testdocs/backend/org/openoffice/JavaSystemBackend.java b/qadevOOo/testdocs/backend/org/openoffice/JavaSystemBackend.java new file mode 100644 index 000000000000..d32f6a9b7451 --- /dev/null +++ b/qadevOOo/testdocs/backend/org/openoffice/JavaSystemBackend.java @@ -0,0 +1,259 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org 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 version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +package org.openoffice; + +import com.sun.star.comp.loader.FactoryHelper; +import com.sun.star.configuration.backend.PropertyInfo; +import com.sun.star.configuration.backend.XLayer; +import com.sun.star.configuration.backend.XLayerContentDescriber; +import com.sun.star.configuration.backend.XLayerHandler; +import com.sun.star.configuration.backend.XSingleLayerStratum; +import com.sun.star.lang.XComponent; +import com.sun.star.lang.XMultiServiceFactory; +import com.sun.star.lang.XServiceInfo; +import com.sun.star.lang.XSingleServiceFactory; +import com.sun.star.lang.XTypeProvider; +import com.sun.star.registry.XRegistryKey; +import com.sun.star.uno.Type; +import com.sun.star.uno.UnoRuntime; +import com.sun.star.uno.XInterface; +import com.sun.star.util.XStringSubstitution; +import com.sun.star.util.XTimeStamped; + + +/** + * + * @author sw93809 + */ +public class JavaSystemBackend implements XSingleLayerStratum, XTypeProvider, + XServiceInfo, XTimeStamped, XComponent { + public final static String __serviceName = "com.sun.star.configuration.backend.PlatformBackend"; + public final static String __implName = "org.openoffice.JavaSystemBackend"; + public final static String testComponent = "org.openoffice.Office.Common"; + protected static XMultiServiceFactory msf = null; + protected XLayer aLayer = null; + + /** + * 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; + } + + public com.sun.star.configuration.backend.XLayer getLayer(String str, + String str1) + throws com.sun.star.configuration.backend.BackendAccessException, + com.sun.star.lang.IllegalArgumentException { + if (aLayer == null) { + System.out.println("JavaSystemBackend::getLayer() called for " + + str); + aLayer = new CommonLayer(); + } + + return aLayer; + } + + /** + * 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; + } + + public String getTimestamp() { + //not really implemented + return "2004-03-31"; + } + + /** + * 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(XSingleLayerStratum.class); + type[3] = new Type(XServiceInfo.class); + type[4] = new Type(XTimeStamped.class); + + return type; + } + + public com.sun.star.configuration.backend.XUpdatableLayer getUpdatableLayer(String str) + throws com.sun.star.configuration.backend.BackendAccessException, + com.sun.star.lang.NoSupportException, + com.sun.star.lang.IllegalArgumentException { + throw new com.sun.star.lang.NoSupportException( + "Cannot write to test backend", this); + } + + /** + * 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; + } + + /** + * + * 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; + + msf = multiFactory; + + if (implName.equals(JavaSystemBackend.class.getName())) { + xSingleServiceFactory = FactoryHelper.getServiceFactory( + JavaSystemBackend.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) { + boolean success = FactoryHelper.writeRegistryServiceInfo(__implName, + __serviceName, + regKey); + + if (success) { + try { + String keyName = "/" + __implName + + "/DATA/SupportedComponents"; + XRegistryKey newKey = regKey.createKey(keyName); + + String[] supportedComponents = { testComponent }; + newKey.setAsciiListValue(supportedComponents); + } catch (Exception ex) { + success = false; // prevent startup loop + System.out.println("can't register component"); + } + } + + return success; + } + + public void addEventListener(com.sun.star.lang.XEventListener xEventListener) { + } + + public void dispose() { + System.out.println("JavaSystemBackend::dispose() called"); + } + + public void removeEventListener(com.sun.star.lang.XEventListener xEventListener) { + } + + protected class CommonLayer implements XLayer, XTimeStamped { + public void readData(XLayerHandler xLayerHandler) + throws com.sun.star.lang.NullPointerException, + com.sun.star.lang.WrappedTargetException, + com.sun.star.configuration.backend.MalformedDataException { + System.out.println("CommonLayer is read"); + + if (xLayerHandler == null) { + throw new com.sun.star.lang.NullPointerException( + "null is not a legal LayerHandler"); + } + + XLayerContentDescriber xLayerContentDescriber = null; + + try { + xLayerContentDescriber = (XLayerContentDescriber) UnoRuntime.queryInterface( + XLayerContentDescriber.class, + msf.createInstance( + "com.sun.star.comp.configuration.backend.LayerDescriber")); + } catch (com.sun.star.uno.Exception e) { + throw new com.sun.star.lang.NullPointerException( + "exception while creating LayerDesccriber"); + } + + if (xLayerContentDescriber == null) { + throw new com.sun.star.lang.NullPointerException( + "created LayerDescriber isn't valid"); + } + + PropertyInfo[] pInfo = new PropertyInfo[1]; + pInfo[0] = new PropertyInfo(); + pInfo[0].Name = "org.openoffice.Office.Common/Undo/Steps"; + pInfo[0].Value = new Integer(12); + pInfo[0].Type = "int"; + pInfo[0].Protected = false; + xLayerContentDescriber.describeLayer(xLayerHandler, pInfo); + } + + public String getTimestamp() { + //not really implemented + return "2004-03-31"; + } + } +}
\ No newline at end of file diff --git a/qadevOOo/testdocs/backend/org/openoffice/makefile.mk b/qadevOOo/testdocs/backend/org/openoffice/makefile.mk new file mode 100644 index 000000000000..aca8f35033c5 --- /dev/null +++ b/qadevOOo/testdocs/backend/org/openoffice/makefile.mk @@ -0,0 +1,64 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org 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 version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +PRJ = ..$/..$/..$/.. +PRJNAME = JavaSystemBackend +TARGET = $(PRJNAME) +PACKAGE = test + +# --- Settings ----------------------------------------------------- +.INCLUDE: settings.mk + +#----- compile .java files ----------------------------------------- + +JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar +JAVAFILES = JavaSystemBackend.java +JAVACLASSFILES = $(CLASSDIR)$/$(PACKAGE)$/JavaSystemBackend.class + +#----- make a jar from compiled files ------------------------------ + +MAXLINELENGTH = 100000 + +JARCLASSDIRS = org/openoffice/JavaSystemBackend.class +JARTARGET = $(TARGET).jar +JARCOMPRESS = TRUE +CUSTOMMANIFESTFILE = manifest + + +# --- Files -------------------------------------------------------- + +# --- Targets ------------------------------------------------------ + +.IF "$(depend)" == "" +ALL : \ + ALLTAR +.ELSE +ALL: ALLDEP +.ENDIF + +.INCLUDE : target.mk + diff --git a/qadevOOo/testdocs/backend/org/openoffice/manifest b/qadevOOo/testdocs/backend/org/openoffice/manifest new file mode 100644 index 000000000000..e085984b2cf2 --- /dev/null +++ b/qadevOOo/testdocs/backend/org/openoffice/manifest @@ -0,0 +1 @@ +RegistrationClassName: org.openoffice.JavaSystemBackend |