summaryrefslogtreecommitdiff
path: root/javaunohelper/com/sun/star/comp/helper/RegistryServiceFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'javaunohelper/com/sun/star/comp/helper/RegistryServiceFactory.java')
-rw-r--r--javaunohelper/com/sun/star/comp/helper/RegistryServiceFactory.java168
1 files changed, 168 insertions, 0 deletions
diff --git a/javaunohelper/com/sun/star/comp/helper/RegistryServiceFactory.java b/javaunohelper/com/sun/star/comp/helper/RegistryServiceFactory.java
new file mode 100644
index 000000000000..826c812fa049
--- /dev/null
+++ b/javaunohelper/com/sun/star/comp/helper/RegistryServiceFactory.java
@@ -0,0 +1,168 @@
+/*************************************************************************
+ *
+ * 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 com.sun.star.comp.helper;
+
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.RuntimeException;
+
+/** The class provides a set of methods which create instances of the
+ com.sun.star.lang.RegistryServiceManager service.
+
+ @deprecated use class Bootstrap instead
+*/
+public class RegistryServiceFactory {
+ static {
+ System.loadLibrary("juh");
+ }
+
+ private static native Object createRegistryServiceFactory(
+ String writeRegistryFile,
+ String readRegistryFile,
+ boolean readOnly,
+ ClassLoader loader);
+
+ /**
+ * This bootstraps an initial service factory working on a registry. If the first or both
+ * parameters contain a value then the service factory is initialized with a simple registry
+ * or a nested registry. Otherwise the service factory must be initialized later with a valid
+ * registry.
+ *<BR>
+ * @param writeRegistryFile file name of the simple registry or the first registry file of
+ * the nested registry which will be opened with read/write rights. This
+ * file will be created if necessary.
+ * @param readRegistryFile file name of the second registry file of the nested registry
+ * which will be opened with readonly rights.
+ * @return a new RegistryServiceFactory.
+ */
+ public static XMultiServiceFactory create(String writeRegistryFile, String readRegistryFile)
+ throws com.sun.star.uno.Exception
+ {
+ return create(writeRegistryFile, readRegistryFile, false);
+ }
+
+ /**
+ * This bootstraps an initial service factory working on a registry. If the first or both
+ * parameters contain a value then the service factory is initialized with a simple registry
+ * or a nested registry. Otherwise the service factory must be initialized later with a valid
+ * registry.
+ *<BR>
+ * @param writeRegistryFile file name of the simple registry or the first registry file of
+ * the nested registry which will be opened with read/write rights. This
+ * file will be created if necessary.
+ * @param readRegistryFile file name of the second registry file of the nested registry
+ * which will be opened with readonly rights.
+ * @param readOnly flag which specify that the first registry file will be opened with
+ * readonly rights. Default is FALSE. If this flag is used the registry
+ * will not be created if not exist.
+ *
+ * @return a new RegistryServiceFactory
+ */
+ public static XMultiServiceFactory create(String writeRegistryFile, String readRegistryFile, boolean readOnly)
+ throws com.sun.star.uno.Exception
+ {
+ // Ensure that we are on a native threads vm
+ // (binary UNO does use native threads).
+ String vm_info = System.getProperty("java.vm.info");
+ if(vm_info != null && vm_info.indexOf("green") != -1)
+ throw new RuntimeException(RegistryServiceFactory.class.toString() + ".create - can't use binary UNO with green threads");
+
+
+ if (writeRegistryFile == null && readRegistryFile == null)
+ throw new com.sun.star.uno.Exception("No registry is specified!");
+
+// if (writeRegistryFile != null) {
+// java.io.File file = new java.io.File(writeRegistryFile);
+
+// if (file.exists()) {
+// if (!file.isFile())
+// throw new com.sun.star.uno.Exception(writeRegistryFile + " is not a file!");
+// } else
+// throw new com.sun.star.uno.Exception(writeRegistryFile + " doese not exist!");
+// }
+
+// if (readRegistryFile != null) {
+// java.io.File file = new java.io.File(readRegistryFile);
+
+// if (file.exists()) {
+// if (!file.isFile())
+// throw new com.sun.star.uno.Exception(readRegistryFile + " is not a file!");
+// } else
+// throw new com.sun.star.uno.Exception(readRegistryFile + " doese not exist!");
+// }
+
+ Object obj = createRegistryServiceFactory(
+ writeRegistryFile, readRegistryFile, readOnly,
+ RegistryServiceFactory.class.getClassLoader() );
+ return UnoRuntime.queryInterface(
+ XMultiServiceFactory.class, obj );
+ }
+
+ /**
+ * This bootstraps an initial service factory working on a registry file.
+ *<BR>
+ * @param registryFile file name of the registry to use/ create; if this is an empty
+ * string, the default registry is used instead
+ *
+ * @return a new RegistryServiceFactory.
+ */
+ public static XMultiServiceFactory create(String registryFile)
+ throws com.sun.star.uno.Exception
+ {
+ return create(registryFile, null, false);
+ }
+
+ /**
+ * This bootstraps an initial service factory working on a registry file.
+ *<BR>
+ * @param registryFile file name of the registry to use/ create; if this is an empty
+ * string, the default registry is used instead
+ * @param readOnly flag which specify that the registry file will be opened with
+ * readonly rights. Default is FALSE. If this flag is used the registry
+ * will not be created if not exist.
+ *
+ * @return a new RegistryServiceFactory.
+ */
+ public static XMultiServiceFactory create(String registryFile, boolean readOnly)
+ throws com.sun.star.uno.Exception
+ {
+ return create(registryFile, null, readOnly);
+ }
+
+ /**
+ * This bootstraps a service factory without initialize a registry.
+ *<BR>
+ * @return a new RegistryServiceFactory.
+ */
+ public static XMultiServiceFactory create() throws com.sun.star.uno.Exception {
+ return create( null, null, false );
+ }
+}
+