Overview | Package | Class | Tree | Deprecated | Index | Help
| The PDK Java API is part of the Portal Developer Kit on Portal Studio
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## oracle.portal.provider.v2.preference
Class FilePreferenceStore

    java.lang.Object
      |
      +--oracle.portal.provider.v2.preference.PreferenceStore
            |
            +--oracle.portal.provider.v2.preference.FilePreferenceStore

All Implemented Interfaces:
  InitializableXMLObject, Validateable

public class FilePreferenceStore
extends PreferenceStore
implements InitializableXMLObject

`FilePreferenceStore` is a lightweight implementation of the `PreferenceStore` storage mechanism that persists data using the filesystem.

All data is persisted in subdirectories of a designated root directory on the filesystem, one data file per user preference. This root directory can be registered explicitly using `setRootDirectory(String)`. If not set explicitly, however, the path returned by `ProviderContext.getRepositoryPath()` will be used as the root directory. If the provider is running under `DefaultProviderLoader`, this will be the same directory as the provider's XML definition file.

If the 'path hashing' feature has been activated (i.e. `setUseHashing(true)` has been called, then each preference data file stored in an extra subdirectory whose name is determined by 'hashing' the data file name. This can improve filesystem performance by limiting the number of preference data files stored in a single directory.

Note that this class is directly compatible with data from persisted from `PersonalizationObject`s using the old `oracle.portal.provider.v1.FilePersonalizationManager` class.

Fields inherited from class oracle.portal.provider.v2.preference.PreferenceStore
`DEFAULT_CUSTOMIZATION_TYPE, PATH_SEPARATOR_CHAR, PATH_SEPARATOR_STRING, USER_CUSTOMIZATION_TYPE`

Constructor Summary
`FilePreferenceStore()` Null Constructor

Method Summary
`void` | `destroy(Preference pref)` Destroys the data persisted for the given `Preference`.
`void` | `destroy(java.lang.String context, java.util.List preferenceTypes)` Destroys all of the `Preference` objects in this `PreferenceStore` stored under the given context path with one of the given preference types.
`boolean` | `exists(Preference pref)` Returns `true` if persisted data exists for the given `Preference`.
`java.io.InputStream` | `getInputStream(Preference pref)` Gets an `InputStream` for reading the data of the given `Preference`.
`java.io.OutputStream` | `getOutputStream(Preference pref, boolean overwrite)` Gets an `OutputStream` for writing the data of the given `Preference` directly into storage.
`java.util.Iterator` | `list(java.lang.String context, java.util.List preferenceTypes)` Gets an `Iterator` over all of the `Preference` objects in this `PreferenceStore` stored under the given context path with one of the given preference types.
`void` | `postInitialize()` Should be called to complete initialization of this `FilePreferenceStore`.
`void` | `preInitialize(java.lang.Object parent)` Should be called immediately after construction of a `FilePreferenceStore` to associate it with its parent `ProviderDefinition`.
`void` | `setRootDirectory(java.lang.String root)` Sets the path to the filesystem directory under which preference data will be stored.
`void` | `setUseHashing(boolean useHashing)` Activate or deactivate the 'path hashing' feature for this FilePreferenceStore.
`void` | `setUseHashing(java.lang.String useHashing)` Activate or deactivate the 'path hashing' feature for this FilePreferenceStore.
`void` | `validate(java.lang.String context, ValidationError errors)` Validates the internal state of this `FilePreferenceStore` instance.

Methods inherited from class oracle.portal.provider.v2.preference.PreferenceStore
`copy, copy, copy, destroy, getName, list, read, setName, write`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### FilePreferenceStore

    public FilePreferenceStore()

  Null Constructor

Method Detail

### preInitialize

    public void preInitialize(java.lang.Object parent)
                       throws NodeHandlerException

  Should be called immediately after construction of a `FilePreferenceStore` to associate it with its parent `ProviderDefinition`.
  Specified by:
    `preInitialize` in interface `InitializableXMLObject`
  Parameters:
    `parent` - the provider definition object. Should be a `ProviderDefinition`
  Throws:
    `NodeHandlerException` - if the given object is not a `ProviderDefinition`

### postInitialize

    public void postInitialize()

  Should be called to complete initialization of this `FilePreferenceStore`.
  Specified by:
    `postInitialize` in interface `InitializableXMLObject`
  Following copied from interface: `oracle.portal.utils.xml.v2.InitializableXMLObject`
  Throws:
    `NodeHandlerException` - if an error occurs while initializing or validating this application object

### setRootDirectory

    public void setRootDirectory(java.lang.String root)

  Sets the path to the filesystem directory under which preference data will be stored.
  Parameters:
    `path` - physical path to serve as the root directory for the preference data repository.

### setUseHashing

    public void setUseHashing(boolean useHashing)

  Activate or deactivate the 'path hashing' feature for this FilePreferenceStore.
  Parameters:
    `useHashing` - boolean indicating whether the 'path hashing' feature should be used when determining the filesystem path in which to store a preference data file for a particular portlet reference. If `false`, then data files for all preferences with the same context path will be stored in a single directory corresponding to that context path. If `true`, then an extra level of directories below the context path directory, with names derived by a hash function of the preference data file name, will be used in order to limit the number of preference data files stored in a single directory.

### setUseHashing

    public void setUseHashing(java.lang.String useHashing)

  Activate or deactivate the 'path hashing' feature for this FilePreferenceStore.
  Parameters:
    `useHashing` - String representation of boolean ("true" or "false") indicating whether the 'path hashing' feature should be used when determining the filesystem path in which to store a preference data file for a particular portlet reference.
  See Also:
    `setUseHashing(boolean)`

### list

    public java.util.Iterator list(java.lang.String context,
                                   java.util.List preferenceTypes)
                            throws PreferenceStoreException

  Gets an `Iterator` over all of the `Preference` objects in this `PreferenceStore` stored under the given context path with one of the given preference types. Note that this listing is 'recursive', in that `Preference`s stored in context paths below the given one will also be returned. Note also that the data object is not loaded into any of the listed `Preference`s.
  Overrides:
    `list` in class `PreferenceStore`
  Parameters:
    `context` - the context path under which `Preference`s should be listed.
    `preferenceTypes` - a list of strings, naming the preference types to include, or `null` if all preference types should be included.
  Throws:
    `PreferenceStoreException` - if an error occurs during the operation.

### destroy

    public void destroy(java.lang.String context,
                        java.util.List preferenceTypes)
                 throws PreferenceStoreException

  Destroys all of the `Preference` objects in this `PreferenceStore` stored under the given context path with one of the given preference types. Note that this operation is 'recursive', in that `Preference`s stored in context paths below the given one will also be destroyed.
  Overrides:
    `destroy` in class `PreferenceStore`
  Parameters:
    `context` - the context path under which `Preference`s should be listed.
    `preferenceTypes` - a list of strings, naming the preference types to include, or `null` if all preference types should be included.
  Throws:
    `PreferenceStoreException` - if an error occurs during the operation.

### exists

    public boolean exists(Preference pref)
                   throws PreferenceStoreException

  Returns `true` if persisted data exists for the given `Preference`.
  Overrides:
    `exists` in class `PreferenceStore`
  Returns:
    `true` if persisted data exists for the given `Preference`, `false` otherwise.

### getInputStream

    public java.io.InputStream getInputStream(Preference pref)
                                       throws EntryNotFoundException,
                                              PreferenceStoreException

  Gets an `InputStream` for reading the data of the given `Preference`.

  This method is provided in conjunction with `getOutputStream(oracle.portal.provider.v2.preference.Preference, boolean)` as a way of streamlining the process of copying data between `PreferenceStore`s, since data can be copied directly from the `InputStream` of one `Preference` to the `OutputStream` of another, without having to instantiate a `PreferenceDataObject`.

  Overrides:
    `getInputStream` in class `PreferenceStore`
  Throws:
    `EntryNotFoundException` - if no data for the given `Preference` exists.
    `PreferenceStoreException` - if any other error occurs during the operation.

### getOutputStream

    public java.io.OutputStream getOutputStream(Preference pref,
                                                boolean overwrite)
                                         throws EntryAlreadyExistsException,
                                                PreferenceStoreException

  Gets an `OutputStream` for writing the data of the given `Preference` directly into storage.

  This method is provided in conjunction with `getInputStream(oracle.portal.provider.v2.preference.Preference)` as a way of streamlining the process of copying data between `PreferenceStore`s, since data can be copied directly from the `InputStream` of one `Preference` to the `OutputStream` of another, without having to instantiate a `PreferenceDataObject`.

  Overrides:
    `getOutputStream` in class `PreferenceStore`
  Throws:
    `EntryAlreadyExistsException` - if `overwrite` was `false` and data for the given `Preference` already exists in storage.
    `PreferenceStoreException` - if any other error occurs during the operation.

### destroy

    public void destroy(Preference pref)
                 throws PreferenceStoreException

  Destroys the data persisted for the given `Preference`.
  Overrides:
    `destroy` in class `PreferenceStore`
  Parameters:
    `pref` - the `Preference` whose persisted data should be destroyed.
  Throws:
    `PreferenceStoreException` - if an error occurs during the operation.

### validate

    public void validate(java.lang.String context,
                         ValidationError errors)

  Validates the internal state of this `FilePreferenceStore` instance. Errors found are reported using the supplied `ValidationError` instance.
  Overrides:
    `validate` in class `PreferenceStore`
  Parameters:
    `context` - The context of the calling instance.
    `errors` - The current list of errors.

Overview | Package | Class | Tree | Deprecated | Index | Help
| The PDK Java API is part of the Portal Developer Kit on Portal Studio
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) 2002, Oracle Corporation. All Rights Reserved.