Oracle Fusion Middleware Java API Reference for Oracle Extension SDK
11g Release 2 (11.1.2.0.0)

E17493-01

oracle.ide.config
Class ClientSetting

java.lang.Object
  extended by oracle.ide.config.ClientSetting
All Implemented Interfaces:
Copyable

public final class ClientSetting
extends java.lang.Object
implements Copyable

The ClientSetting class provides a default object store that can be used to save and open extension specific data.

Extensions should never set their specific settings on the IdeSettings object. They must use a ClientSetting instance to initialize their settings. The ClientSetting object makes sure that the extension data can be accessed through the IdeSettings object.

Extensions get a ClientSetting instance by calling the findOrCreate(java.lang.String) method.


Field Summary
static java.lang.String FILENAME
           
static java.lang.String NAMESPACE_URI
           
static java.lang.String ROOT_TAG
           
 
Constructor Summary
protected ClientSetting(java.net.URL url)
           
 
Method Summary
 java.lang.Object copyTo(java.lang.Object object)
          Copies the internal state of this object to the specified copy.
protected  void copyToImpl(ClientSetting copy)
           
static void deregisterUI(Navigable ui)
           
protected  void ensureOpen()
           
 boolean equals(java.lang.Object o)
           
protected  boolean equalsImpl(ClientSetting setting)
          This is a helper method for equals(Object) that can also be used by subclasses that implement equals(Object).
static ClientSetting findOrCreate(java.lang.String extensionID)
          Finds or creates an extension specific settings object where the extension stores its settings.
static ClientSetting findOrCreate(java.lang.String extensionID, java.lang.String filename)
          Finds or creates an extension specific settings object where the extension stores its settings.
 java.lang.ClassLoader getClassLoader()
           
protected  java.util.Map getClientData()
           
 Copyable getData(java.lang.String key)
          Gets the data object associated with the specified dataKey.
 java.lang.String getExtensionID()
           
protected  ObjectStore getObjectStore()
          Get the object store used to save and open the client data file.
 java.net.URL getURL()
          Get the URL where to save or load client data.
 boolean hasData(java.lang.String dataKey)
          Checks if a data object associated with the specified dataKey exists.
 int hashCode()
           
 boolean isNew()
           
 boolean isOpen()
           
 void open()
          Loads the client data.
 void putData(java.lang.String key, Copyable data)
          Sets the data object associated with the specified dataKey.
 void putExtensionID(java.lang.String extensionID)
           
static void registerUI(Navigable ui)
           
 void save()
          Saves the client data.
 void setClassLoader(java.lang.ClassLoader classloader)
           
 void setURL(java.net.URL url)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ROOT_TAG

public static final java.lang.String ROOT_TAG
See Also:
Constant Field Values

NAMESPACE_URI

public static final java.lang.String NAMESPACE_URI

FILENAME

public static final java.lang.String FILENAME
See Also:
Constant Field Values
Constructor Detail

ClientSetting

protected ClientSetting(java.net.URL url)
Method Detail

hasData

public boolean hasData(java.lang.String dataKey)
Checks if a data object associated with the specified dataKey exists. This method does not cause the loading of the settings, therefore it should be used to check for data existance instead of calling getData for that purpose.

If not yet open, this implementation considers all keys to be had if the URL of this object exists. That is to say that either all keys are present, or the file does not exist.

Parameters:
dataKey - unique key identifying the data.
Returns:
true if the settings holds the sought data.

getData

public Copyable getData(java.lang.String key)
                 throws TransientMarker
Gets the data object associated with the specified dataKey. Don't use this method to check for the existance of the data. Instead use the hasData method.

Parameters:
key - unique key identifying the data.
Returns:
the sought data.
Throws:
TransientMarker

putData

public void putData(java.lang.String key,
                    Copyable data)
Sets the data object associated with the specified dataKey.

Parameters:
key - dataKey unique key identifying the data.
data - the data.

save

public void save()
          throws java.io.IOException
Saves the client data.

Throws:
java.io.IOException - Signals that an I/O exception of some sort occurred.

open

public void open()
          throws java.io.IOException
Loads the client data.

Throws:
java.io.IOException - Signals that an I/O exception of some sort occurred.

getURL

public java.net.URL getURL()
Get the URL where to save or load client data.

Returns:
the URL where to save or load client data.

setURL

public void setURL(java.net.URL url)

isNew

public boolean isNew()

isOpen

public boolean isOpen()

getExtensionID

public java.lang.String getExtensionID()

putExtensionID

public void putExtensionID(java.lang.String extensionID)

copyTo

public java.lang.Object copyTo(java.lang.Object object)
Description copied from interface: Copyable
Copies the internal state of this object to the specified copy. If copy is null, then this method should create a new instance of this class and proceed to copy the internal state to the newly created object. Generally, only the persistent state of the object should be copied, but whether or not it is appropriate to copy transient properties is at the discretion of the individual implementor.

Regardless of whether the copy occurs to an existing object or to a newly created object, the return value is object to which this object's state was copied.

There is a standard implementation pattern for the copyTo method that helps avoid problems that arise when a Copyable object is subclassed. The pattern is:


    public Object copyTo( Object target )
    {
      final <this_class> copy =
        target != null ? (<this_class>) target : new <this_class>();
      copyToImpl( copy );
      return copy;
    }

    protected final void copyToImpl( <this_class> copy )
    {
      super.copyToImpl( copy );  //  if necessary
      //  put code here for copying the properties of <this_class>
    }
  
The parameter passed into the copyToImpl method is the same type of this class. The responsibility of copyToImpl is to copy the state of this class through direct access of the fields. The copyToImpl method should not use getters and setters since these may be overridden, causing the state of this class to be incompletely copied.

Specified by:
copyTo in interface Copyable
Parameters:
object - The target object to which the state of this object should be copied. If target is null, then the copyTo method will return a new instance of this class.
Returns:
The object to which the state of this object was copied. If the target was non-null, then the return value is the same as the target object that was passed in; otherwise, the return value is a new instance of this class.

copyToImpl

protected final void copyToImpl(ClientSetting copy)

equals

public boolean equals(java.lang.Object o)
Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

registerUI

public static void registerUI(Navigable ui)

deregisterUI

public static void deregisterUI(Navigable ui)

findOrCreate

public static ClientSetting findOrCreate(java.lang.String extensionID)
Finds or creates an extension specific settings object where the extension stores its settings. By default, the settings data is saved in the extension user home directory in a file named settings.xml.

Parameters:
extensionID - the extension unique identifier.
Returns:
the object that extensions use to store their ide specific settings.

findOrCreate

public static ClientSetting findOrCreate(java.lang.String extensionID,
                                         java.lang.String filename)
Finds or creates an extension specific settings object where the extension stores its settings. The settings data is saved in the extension user home directory in the given file.

Parameters:
extensionID - the extension unique identifier.
filename - the file where the setting data is saved.
Returns:
the object that extensions use to store their ide specific settings.

equalsImpl

protected final boolean equalsImpl(ClientSetting setting)
This is a helper method for equals(Object) that can also be used by subclasses that implement equals(Object). It assumes that the argument is not null.


getObjectStore

protected ObjectStore getObjectStore()
Get the object store used to save and open the client data file.

Returns:
the object store.

ensureOpen

protected void ensureOpen()
                   throws java.io.IOException
Throws:
java.io.IOException

getClientData

protected java.util.Map getClientData()

getClassLoader

public java.lang.ClassLoader getClassLoader()

setClassLoader

public void setClassLoader(java.lang.ClassLoader classloader)

Oracle Fusion Middleware Java API Reference for Oracle Extension SDK
11g Release 2 (11.1.2.0.0)

E17493-01

Copyright © 1997, 2011, Oracle. All rights reserved.