Using a Data Source

From Apache OpenOffice Wiki
Jump to: navigation, search



After a configuration provider is obtained, call <idlml>com.sun.star.lang.XMultiServiceFactory:createInstanceWithArguments</idlml>() to create a view on the configuration data.

The following arguments can be specified when creating a view:

Parameter Name Type Default Comments
nodepath string - This parameter is required. It contains an absolute path to the root node of the view.
Locale string The user's locale

(or "*")

Using this parameter, specify the locale to be used for selecting locale-dependent values. Use the ISO code for a locale, for example, en-US for U.S. English.
EnableAsync boolean true This parameter was called "lazywrite" in a former version. The old name is still supported for compatibility.
depth integer (unlimited) This parameter causes the view to be truncated to a specified nesting depth.
nocache boolean false This parameter is deprecated.

Template:Documentation/Note

To create a read-only view on the data, the service com.sun.star.configuration.ConfigurationAccess is requested:

  // Create a specified read-only configuration view
  public Object createConfigurationView(String sPath) throws com.sun.star.uno.Exception {
      // get the provider to use 
      XMultiServiceFactory xProvider = getProvider();
 
      // The service name: Need only read access:
      final String sReadOnlyView = "com.sun.star.configuration.ConfigurationAccess";
 
      // creation arguments: nodepath 
      com.sun.star.beans.PropertyValue aPathArgument = new com.sun.star.beans.PropertyValue();
      aPathArgument.Name = "nodepath";
      aPathArgument.Value = sPath;
 
      Object[] aArguments = new Object[1];
      aArguments[0] = aPathArgument;
 
      // create the view
      Object xViewRoot = xProvider.createInstanceWithArguments(sReadOnlyView, aArguments);
 
      return xViewRoot;
  }

To obtain updatable access, the service com.sun.star.configuration.ConfigurationUpdateAccess is requested. In this case, there are additional parameters available that control the caching behavior of the configuration management component:

  // Create a specified updatable configuration view
  Object createUpdatableView(String sPath, boolean bAsync) throws com.sun.star.uno.Exception {
      // get the provider to use 
      XMultiServiceFactory xProvider = getProvider();
 
      // The service name: Need update access:
      final String cUpdatableView = "com.sun.star.configuration.ConfigurationUpdateAccess";
 
      // creation arguments: nodepath 
      com.sun.star.beans.PropertyValue aPathArgument = new com.sun.star.beans.PropertyValue();
      aPathArgument.Name = "nodepath";
      aPathArgument.Value = sPath;
 
      // creation arguments: commit mode - write-through or write-back 
      com.sun.star.beans.PropertyValue aModeArgument = new com.sun.star.beans.PropertyValue();
      aModeArgument.Name = "EnableAsync";
      aModeArgument.Value = new Boolean(bAsync);
 
      Object[] aArguments = new Object[2];
      aArguments[0] = aPathArgument;
      aArguments[1] = aModeArgument;
 
      // create the view
      Object xViewRoot = xProvider.createInstanceWithArguments(cUpdatableView, aArguments);
 
      return xViewRoot;
  }

A com.sun.star.configuration.AdministrationProvider supports the same service specifiers, but creates views on shared layers of configuration data. It supports additional parameters to select the exact layer to work on or to specify authorization credentials. Independent of the backend, the following parameter is supported by the com.sun.star.configuration.AdministrationProvider :

Parameter Name Type Default Comments
Entity string - Identifies an entity that the backend can map to a sequence of layers to merge and a target layer for updates.

If no Entity is provided, the com.sun.star.configuration.AdministrationProvider uses the entity the backend provides through <idlml>com.sun.star.configuration.backend.XBackendEntities:getAdminEntity</idlml>(). The supported entities and their meaning depend on the backend. For the default file-based backend an entity is a file URL that points to the base directory of a layer.

For a com.sun.star.configuration.AdministrationProvider, the default value for the locale parameter is "*".

Content on this page is licensed under the Public Documentation License (PDL).
Personal tools