com.sun.star.comp.helper.RegistryServiceFactory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of juh Show documentation
Show all versions of juh Show documentation
Allows the boostrapping of a ServicemManager and gives access to the native component loader.
The newest version!
/**************************************************************
*
* 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
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the 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.
*
* @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.
*
* @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.
*
* @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.
*
* @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.
*
* @return a new RegistryServiceFactory.
*/
public static XMultiServiceFactory create() throws com.sun.star.uno.Exception {
return create( null, null, false );
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy