java.util.prefs
Class AbstractPreferences

java.lang.Object sample code for java.lang.Object definition code for java.lang.Object 
  extended by java.util.prefs.Preferences sample code for java.util.prefs.Preferences definition code for java.util.prefs.Preferences 
      extended by java.util.prefs.AbstractPreferences

public abstract class AbstractPreferences
extends Preferences sample code for java.util.prefs.Preferences definition code for java.util.prefs.Preferences

This class provides a skeletal implementation of the Preferences sample code for java.util.prefs.Preferences definition code for java.util.prefs.Preferences class, greatly easing the task of implementing it.

This class is for Preferences implementers only. Normal users of the Preferences facility should have no need to consult this documentation. The Preferences sample code for java.util.prefs.Preferences definition code for java.util.prefs.Preferences documentation should suffice.

Implementors must override the nine abstract service-provider interface (SPI) methods: getSpi(String) sample code for java.util.prefs.AbstractPreferences.getSpi(java.lang.String) definition code for java.util.prefs.AbstractPreferences.getSpi(java.lang.String) , putSpi(String,String) sample code for java.util.prefs.AbstractPreferences.putSpi(java.lang.String, java.lang.String) definition code for java.util.prefs.AbstractPreferences.putSpi(java.lang.String, java.lang.String) , removeSpi(String) sample code for java.util.prefs.AbstractPreferences.removeSpi(java.lang.String) definition code for java.util.prefs.AbstractPreferences.removeSpi(java.lang.String) , childSpi(String) sample code for java.util.prefs.AbstractPreferences.childSpi(java.lang.String) definition code for java.util.prefs.AbstractPreferences.childSpi(java.lang.String) , removeNodeSpi() sample code for java.util.prefs.AbstractPreferences.removeNodeSpi() definition code for java.util.prefs.AbstractPreferences.removeNodeSpi() , keysSpi() sample code for java.util.prefs.AbstractPreferences.keysSpi() definition code for java.util.prefs.AbstractPreferences.keysSpi() , childrenNamesSpi() sample code for java.util.prefs.AbstractPreferences.childrenNamesSpi() definition code for java.util.prefs.AbstractPreferences.childrenNamesSpi() , syncSpi() sample code for java.util.prefs.AbstractPreferences.syncSpi() definition code for java.util.prefs.AbstractPreferences.syncSpi() and flushSpi() sample code for java.util.prefs.AbstractPreferences.flushSpi() definition code for java.util.prefs.AbstractPreferences.flushSpi() . All of the concrete methods specify precisely how they are implemented atop these SPI methods. The implementor may, at his discretion, override one or more of the concrete methods if the default implementation is unsatisfactory for any reason, such as performance.

The SPI methods fall into three groups concerning exception behavior. The getSpi method should never throw exceptions, but it doesn't really matter, as any exception thrown by this method will be intercepted by get(String,String) sample code for java.util.prefs.AbstractPreferences.get(java.lang.String, java.lang.String) definition code for java.util.prefs.AbstractPreferences.get(java.lang.String, java.lang.String) , which will return the specified default value to the caller. The removeNodeSpi, keysSpi, childrenNamesSpi, syncSpi and flushSpi methods are specified to throw BackingStoreException sample code for java.util.prefs.BackingStoreException definition code for java.util.prefs.BackingStoreException , and the implementation is required to throw this checked exception if it is unable to perform the operation. The exception propagates outward, causing the corresponding API method to fail.

The remaining SPI methods putSpi(String,String) sample code for java.util.prefs.AbstractPreferences.putSpi(java.lang.String, java.lang.String) definition code for java.util.prefs.AbstractPreferences.putSpi(java.lang.String, java.lang.String) , removeSpi(String) sample code for java.util.prefs.AbstractPreferences.removeSpi(java.lang.String) definition code for java.util.prefs.AbstractPreferences.removeSpi(java.lang.String) and childSpi(String) sample code for java.util.prefs.AbstractPreferences.childSpi(java.lang.String) definition code for java.util.prefs.AbstractPreferences.childSpi(java.lang.String) have more complicated exception behavior. They are not specified to throw BackingStoreException, as they can generally obey their contracts even if the backing store is unavailable. This is true because they return no information and their effects are not required to become permanent until a subsequent call to {Preferences#flush()} or {Preferences#sync()}. Generally speaking, these SPI methods should not throw exceptions. In some implementations, there may be circumstances under which these calls cannot even enqueue the requested operation for later processing. Even under these circumstances it is generally better to simply ignore the invocation and return, rather than throwing an exception. Under these circumstances, however, all subsequent invocations of flush() and sync should return false, as returning true would imply that all previous operations had successfully been made permanent.

There is one circumstance under which putSpi, removeSpi and childSpi should throw an exception: if the caller lacks sufficient privileges on the underlying operating system to perform the requested operation. This will, for instance, occur on most systems if a non-privileged user attempts to modify system preferences. (The required privileges will vary from implementation to implementation. On some implementations, they are the right to modify the contents of some directory in the file system; on others they are the right to modify contents of some key in a registry.) Under any of these circumstances, it would generally be undesirable to let the program continue executing as if these operations would become permanent at a later time. While implementations are not required to throw an exception under these circumstances, they are encouraged to do so. A SecurityException sample code for java.lang.SecurityException definition code for java.lang.SecurityException would be appropriate.

Most of the SPI methods require the implementation to read or write information at a preferences node. The implementor should beware of the fact that another VM may have concurrently deleted this node from the backing store. It is the implementation's responsibility to recreate the node if it has been deleted.

Implementation note: In Sun's default Preferences implementations, the user's identity is inherited from the underlying operating system and does not change for the lifetime of the virtual machine. It is recognized that server-side Preferences implementations may have the user identity change from request to request, implicitly passed to Preferences methods via the use of a static ThreadLocal sample code for java.lang.ThreadLocal definition code for java.lang.ThreadLocal instance. Authors of such implementations are strongly encouraged to determine the user at the time preferences are accessed (for example by the get(String,String) sample code for java.util.prefs.AbstractPreferences.get(java.lang.String, java.lang.String) definition code for java.util.prefs.AbstractPreferences.get(java.lang.String, java.lang.String) or put(String,String) sample code for java.util.prefs.AbstractPreferences.put(java.lang.String, java.lang.String) definition code for java.util.prefs.AbstractPreferences.put(java.lang.String, java.lang.String) method) rather than permanently associating a user with each Preferences instance. The latter behavior conflicts with normal Preferences usage and would lead to great confusion.

Since:
1.4
See Also:
Preferences sample code for java.util.prefs.Preferences definition code for java.util.prefs.Preferences

Field Summary
protected  Object sample code for java.lang.Object definition code for java.lang.Object lock sample code for java.util.prefs.AbstractPreferences.lock definition code for java.util.prefs.AbstractPreferences.lock
          An object whose monitor is used to lock this node.
protected  boolean newNode sample code for java.util.prefs.AbstractPreferences.newNode definition code for java.util.prefs.AbstractPreferences.newNode
          This field should be true if this node did not exist in the backing store prior to the creation of this object.
 
Fields inherited from class java.util.prefs.Preferences sample code for java.util.prefs.Preferences definition code for java.util.prefs.Preferences
MAX_KEY_LENGTH sample code for java.util.prefs.Preferences.MAX_KEY_LENGTH definition code for java.util.prefs.Preferences.MAX_KEY_LENGTH , MAX_NAME_LENGTH sample code for java.util.prefs.Preferences.MAX_NAME_LENGTH definition code for java.util.prefs.Preferences.MAX_NAME_LENGTH , MAX_VALUE_LENGTH sample code for java.util.prefs.Preferences.MAX_VALUE_LENGTH definition code for java.util.prefs.Preferences.MAX_VALUE_LENGTH
 
Constructor Summary
protected AbstractPreferences sample code for java.util.prefs.AbstractPreferences.AbstractPreferences(java.util.prefs.AbstractPreferences, java.lang.String) definition code for java.util.prefs.AbstractPreferences.AbstractPreferences(java.util.prefs.AbstractPreferences, java.lang.String) (AbstractPreferences sample code for java.util.prefs.AbstractPreferences definition code for java.util.prefs.AbstractPreferences  parent, String sample code for java.lang.String definition code for java.lang.String  name)
          Creates a preference node with the specified parent and the specified name relative to its parent.
 
Method Summary
 String sample code for java.lang.String definition code for java.lang.String absolutePath sample code for java.util.prefs.AbstractPreferences.absolutePath() definition code for java.util.prefs.AbstractPreferences.absolutePath() ()
          Implements the absolutePath method as per the specification in Preferences.absolutePath() sample code for java.util.prefs.Preferences.absolutePath() definition code for java.util.prefs.Preferences.absolutePath() .
 void addNodeChangeListener sample code for java.util.prefs.AbstractPreferences.addNodeChangeListener(java.util.prefs.NodeChangeListener) definition code for java.util.prefs.AbstractPreferences.addNodeChangeListener(java.util.prefs.NodeChangeListener) (NodeChangeListener sample code for java.util.prefs.NodeChangeListener definition code for java.util.prefs.NodeChangeListener  ncl)
          Registers the specified listener to receive node change events for this node.
 void addPreferenceChangeListener sample code for java.util.prefs.AbstractPreferences.addPreferenceChangeListener(java.util.prefs.PreferenceChangeListener) definition code for java.util.prefs.AbstractPreferences.addPreferenceChangeListener(java.util.prefs.PreferenceChangeListener) (PreferenceChangeListener sample code for java.util.prefs.PreferenceChangeListener definition code for java.util.prefs.PreferenceChangeListener  pcl)
          Registers the specified listener to receive preference change events for this preference node.
protected  AbstractPreferences sample code for java.util.prefs.AbstractPreferences definition code for java.util.prefs.AbstractPreferences [] cachedChildren sample code for java.util.prefs.AbstractPreferences.cachedChildren() definition code for java.util.prefs.AbstractPreferences.cachedChildren() ()
          Returns all known unremoved children of this node.
 String sample code for java.lang.String definition code for java.lang.String [] childrenNames sample code for java.util.prefs.AbstractPreferences.childrenNames() definition code for java.util.prefs.AbstractPreferences.childrenNames() ()
          Implements the children method as per the specification in Preferences.childrenNames() sample code for java.util.prefs.Preferences.childrenNames() definition code for java.util.prefs.Preferences.childrenNames() .
protected abstract  String sample code for java.lang.String definition code for java.lang.String [] childrenNamesSpi sample code for java.util.prefs.AbstractPreferences.childrenNamesSpi() definition code for java.util.prefs.AbstractPreferences.childrenNamesSpi() ()
          Returns the names of the children of this preference node.
protected abstract  AbstractPreferences sample code for java.util.prefs.AbstractPreferences definition code for java.util.prefs.AbstractPreferences childSpi sample code for java.util.prefs.AbstractPreferences.childSpi(java.lang.String) definition code for java.util.prefs.AbstractPreferences.childSpi(java.lang.String) (String sample code for java.lang.String definition code for java.lang.String  name)
          Returns the named child of this preference node, creating it if it does not already exist.
 void clear sample code for java.util.prefs.AbstractPreferences.clear() definition code for java.util.prefs.AbstractPreferences.clear() ()
          Implements the clear method as per the specification in Preferences.clear() sample code for java.util.prefs.Preferences.clear() definition code for java.util.prefs.Preferences.clear() .
 void exportNode sample code for java.util.prefs.AbstractPreferences.exportNode(java.io.OutputStream) definition code for java.util.prefs.AbstractPreferences.exportNode(java.io.OutputStream) (OutputStream sample code for java.io.OutputStream definition code for java.io.OutputStream  os)
          Implements the exportNode method as per the specification in Preferences.exportNode(OutputStream) sample code for java.util.prefs.Preferences.exportNode(java.io.OutputStream) definition code for java.util.prefs.Preferences.exportNode(java.io.OutputStream) .
 void exportSubtree sample code for java.util.prefs.AbstractPreferences.exportSubtree(java.io.OutputStream) definition code for java.util.prefs.AbstractPreferences.exportSubtree(java.io.OutputStream) (OutputStream sample code for java.io.OutputStream definition code for java.io.OutputStream  os)
          Implements the exportSubtree method as per the specification in Preferences.exportSubtree(OutputStream) sample code for java.util.prefs.Preferences.exportSubtree(java.io.OutputStream) definition code for java.util.prefs.Preferences.exportSubtree(java.io.OutputStream) .
 void flush sample code for java.util.prefs.AbstractPreferences.flush() definition code for java.util.prefs.AbstractPreferences.flush() ()
          Implements the flush method as per the specification in Preferences.flush() sample code for java.util.prefs.Preferences.flush() definition code for java.util.prefs.Preferences.flush() .
protected abstract  void flushSpi sample code for java.util.prefs.AbstractPreferences.flushSpi() definition code for java.util.prefs.AbstractPreferences.flushSpi() ()
          This method is invoked with this node locked.
 String sample code for java.lang.String definition code for java.lang.String get sample code for java.util.prefs.AbstractPreferences.get(java.lang.String, java.lang.String) definition code for java.util.prefs.AbstractPreferences.get(java.lang.String, java.lang.String) (String sample code for java.lang.String definition code for java.lang.String  key, String sample code for java.lang.String definition code for java.lang.String  def)
          Implements the get method as per the specification in Preferences.get(String,String) sample code for java.util.prefs.Preferences.get(java.lang.String, java.lang.String) definition code for java.util.prefs.Preferences.get(java.lang.String, java.lang.String) .
 boolean getBoolean sample code for java.util.prefs.AbstractPreferences.getBoolean(java.lang.String, boolean) definition code for java.util.prefs.AbstractPreferences.getBoolean(java.lang.String, boolean) (String sample code for java.lang.String definition code for java.lang.String  key, boolean def)
          Implements the getBoolean method as per the specification in Preferences.getBoolean(String,boolean) sample code for java.util.prefs.Preferences.getBoolean(java.lang.String, boolean) definition code for java.util.prefs.Preferences.getBoolean(java.lang.String, boolean) .
 byte[] getByteArray sample code for java.util.prefs.AbstractPreferences.getByteArray(java.lang.String, byte[]) definition code for java.util.prefs.AbstractPreferences.getByteArray(java.lang.String, byte[]) (String sample code for java.lang.String definition code for java.lang.String  key, byte[] def)
          Implements the getByteArray method as per the specification in Preferences.getByteArray(String,byte[]) sample code for java.util.prefs.Preferences.getByteArray(java.lang.String, byte[]) definition code for java.util.prefs.Preferences.getByteArray(java.lang.String, byte[]) .
protected  AbstractPreferences sample code for java.util.prefs.AbstractPreferences definition code for java.util.prefs.AbstractPreferences getChild sample code for java.util.prefs.AbstractPreferences.getChild(java.lang.String) definition code for java.util.prefs.AbstractPreferences.getChild(java.lang.String) (String sample code for java.lang.String definition code for java.lang.String  nodeName)
          Returns the named child if it exists, or null if it does not.
 double getDouble sample code for java.util.prefs.AbstractPreferences.getDouble(java.lang.String, double) definition code for java.util.prefs.AbstractPreferences.getDouble(java.lang.String, double) (String sample code for java.lang.String definition code for java.lang.String  key, double def)
          Implements the getDouble method as per the specification in Preferences.getDouble(String,double) sample code for java.util.prefs.Preferences.getDouble(java.lang.String, double) definition code for java.util.prefs.Preferences.getDouble(java.lang.String, double) .
 float getFloat sample code for java.util.prefs.AbstractPreferences.getFloat(java.lang.String, float) definition code for java.util.prefs.AbstractPreferences.getFloat(java.lang.String, float) (String sample code for java.lang.String definition code for java.lang.String  key, float def)
          Implements the getFloat method as per the specification in Preferences.getFloat(String,float) sample code for java.util.prefs.Preferences.getFloat(java.lang.String, float) definition code for java.util.prefs.Preferences.getFloat(java.lang.String, float) .
 int getInt sample code for java.util.prefs.AbstractPreferences.getInt(java.lang.String, int) definition code for java.util.prefs.AbstractPreferences.getInt(java.lang.String, int) (String sample code for java.lang.String definition code for java.lang.String  key, int def)
          Implements the getInt method as per the specification in Preferences.getInt(String,int) sample code for java.util.prefs.Preferences.getInt(java.lang.String, int) definition code for java.util.prefs.Preferences.getInt(java.lang.String, int) .
 long getLong sample code for java.util.prefs.AbstractPreferences.getLong(java.lang.String, long) definition code for java.util.prefs.AbstractPreferences.getLong(java.lang.String, long) (String sample code for java.lang.String definition code for java.lang.String  key, long def)
          Implements the getLong method as per the specification in Preferences.getLong(String,long) sample code for java.util.prefs.Preferences.getLong(java.lang.String, long) definition code for java.util.prefs.Preferences.getLong(java.lang.String, long) .
protected abstract  String sample code for java.lang.String definition code for java.lang.String getSpi sample code for java.util.prefs.AbstractPreferences.getSpi(java.lang.String) definition code for java.util.prefs.AbstractPreferences.getSpi(java.lang.String) (String sample code for java.lang.String definition code for java.lang.String  key)
          Return the value associated with the specified key at this preference node, or null if there is no association for this key, or the association cannot be determined at this time.
protected  boolean isRemoved sample code for java.util.prefs.AbstractPreferences.isRemoved() definition code for java.util.prefs.AbstractPreferences.isRemoved() ()
          Returns true iff this node (or an ancestor) has been removed with the removeNode() sample code for java.util.prefs.AbstractPreferences.removeNode() definition code for java.util.prefs.AbstractPreferences.removeNode() method.
 boolean isUserNode sample code for java.util.prefs.AbstractPreferences.isUserNode() definition code for java.util.prefs.AbstractPreferences.isUserNode() ()
          Implements the isUserNode method as per the specification in Preferences.isUserNode() sample code for java.util.prefs.Preferences.isUserNode() definition code for java.util.prefs.Preferences.isUserNode() .
 String sample code for java.lang.String definition code for java.lang.String [] keys sample code for java.util.prefs.AbstractPreferences.keys() definition code for java.util.prefs.AbstractPreferences.keys() ()
          Implements the keys method as per the specification in Preferences.keys() sample code for java.util.prefs.Preferences.keys() definition code for java.util.prefs.Preferences.keys() .
protected abstract  String sample code for java.lang.String definition code for java.lang.String [] keysSpi sample code for java.util.prefs.AbstractPreferences.keysSpi() definition code for java.util.prefs.AbstractPreferences.keysSpi() ()
          Returns all of the keys that have an associated value in this preference node.
 String sample code for java.lang.String definition code for java.lang.String name sample code for java.util.prefs.AbstractPreferences.name() definition code for java.util.prefs.AbstractPreferences.name() ()
          Implements the name method as per the specification in Preferences.name() sample code for java.util.prefs.Preferences.name() definition code for java.util.prefs.Preferences.name() .
 Preferences sample code for java.util.prefs.Preferences definition code for java.util.prefs.Preferences node sample code for java.util.prefs.AbstractPreferences.node(java.lang.String) definition code for java.util.prefs.AbstractPreferences.node(java.lang.String) (String sample code for java.lang.String definition code for java.lang.String  path)
          Implements the node method as per the specification in Preferences.node(String) sample code for java.util.prefs.Preferences.node(java.lang.String) definition code for java.util.prefs.Preferences.node(java.lang.String) .
 boolean nodeExists sample code for java.util.prefs.AbstractPreferences.nodeExists(java.lang.String) definition code for java.util.prefs.AbstractPreferences.nodeExists(java.lang.String) (String sample code for java.lang.String definition code for java.lang.String  path)
          Implements the nodeExists method as per the specification in Preferences.nodeExists(String) sample code for java.util.prefs.Preferences.nodeExists(java.lang.String) definition code for java.util.prefs.Preferences.nodeExists(java.lang.String) .
 Preferences sample code for java.util.prefs.Preferences definition code for java.util.prefs.Preferences parent sample code for java.util.prefs.AbstractPreferences.parent() definition code for java.util.prefs.AbstractPreferences.parent() ()
          Implements the parent method as per the specification in Preferences.parent() sample code for java.util.prefs.Preferences.parent() definition code for java.util.prefs.Preferences.parent() .
 void put sample code for java.util.prefs.AbstractPreferences.put(java.lang.String, java.lang.String) definition code for java.util.prefs.AbstractPreferences.put(java.lang.String, java.lang.String) (String sample code for java.lang.String definition code for java.lang.String  key, String sample code for java.lang.String definition code for java.lang.String  value)
          Implements the put method as per the specification in Preferences.put(String,String) sample code for java.util.prefs.Preferences.put(java.lang.String, java.lang.String) definition code for java.util.prefs.Preferences.put(java.lang.String, java.lang.String) .
 void putBoolean sample code for java.util.prefs.AbstractPreferences.putBoolean(java.lang.String, boolean) definition code for java.util.prefs.AbstractPreferences.putBoolean(java.lang.String, boolean) (String sample code for java.lang.String definition code for java.lang.String  key, boolean value)
          Implements the putBoolean method as per the specification in Preferences.putBoolean(String,boolean) sample code for java.util.prefs.Preferences.putBoolean(java.lang.String, boolean) definition code for java.util.prefs.Preferences.putBoolean(java.lang.String, boolean) .
 void putByteArray sample code for java.util.prefs.AbstractPreferences.putByteArray(java.lang.String, byte[]) definition code for java.util.prefs.AbstractPreferences.putByteArray(java.lang.String, byte[]) (String sample code for java.lang.String definition code for java.lang.String  key, byte[] value)
          Implements the putByteArray method as per the specification in Preferences.putByteArray(String,byte[]) sample code for java.util.prefs.Preferences.putByteArray(java.lang.String, byte[]) definition code for java.util.prefs.Preferences.putByteArray(java.lang.String, byte[]) .
 void putDouble sample code for java.util.prefs.AbstractPreferences.putDouble(java.lang.String, double) definition code for java.util.prefs.AbstractPreferences.putDouble(java.lang.String, double) (String sample code for java.lang.String definition code for java.lang.String  key, double value)
          Implements the putDouble method as per the specification in Preferences.putDouble(String,double) sample code for java.util.prefs.Preferences.putDouble(java.lang.String, double) definition code for java.util.prefs.Preferences.putDouble(java.lang.String, double) .
 void putFloat sample code for java.util.prefs.AbstractPreferences.putFloat(java.lang.String, float) definition code for java.util.prefs.AbstractPreferences.putFloat(java.lang.String, float) (String sample code for java.lang.String definition code for java.lang.String  key, float value)
          Implements the putFloat method as per the specification in Preferences.putFloat(String,float) sample code for java.util.prefs.Preferences.putFloat(java.lang.String, float) definition code for java.util.prefs.Preferences.putFloat(java.lang.String, float) .
 void putInt sample code for java.util.prefs.AbstractPreferences.putInt(java.lang.String, int) definition code for java.util.prefs.AbstractPreferences.putInt(java.lang.String, int) (String sample code for java.lang.String definition code for java.lang.String  key, int value)
          Implements the putInt method as per the specification in Preferences.putInt(String,int) sample code for java.util.prefs.Preferences.putInt(java.lang.String, int) definition code for java.util.prefs.Preferences.putInt(java.lang.String, int) .
 void putLong sample code for java.util.prefs.AbstractPreferences.putLong(java.lang.String, long) definition code for java.util.prefs.AbstractPreferences.putLong(java.lang.String, long) (String sample code for java.lang.String definition code for java.lang.String  key, long value)
          Implements the putLong method as per the specification in Preferences.putLong(String,long) sample code for java.util.prefs.Preferences.putLong(java.lang.String, long) definition code for java.util.prefs.Preferences.putLong(java.lang.String, long) .
protected abstract  void putSpi sample code for java.util.prefs.AbstractPreferences.putSpi(java.lang.String, java.lang.String) definition code for java.util.prefs.AbstractPreferences.putSpi(java.lang.String, java.lang.String) (String sample code for java.lang.String definition code for java.lang.String  key, String sample code for java.lang.String definition code for java.lang.String  value)
          Put the given key-value association into this preference node.
 void remove sample code for java.util.prefs.AbstractPreferences.remove(java.lang.String) definition code for java.util.prefs.AbstractPreferences.remove(java.lang.String) (String sample code for java.lang.String definition code for java.lang.String  key)
          Implements the remove(String) method as per the specification in Preferences.remove(String) sample code for java.util.prefs.Preferences.remove(java.lang.String) definition code for java.util.prefs.Preferences.remove(java.lang.String) .
 void removeNode sample code for java.util.prefs.AbstractPreferences.removeNode() definition code for java.util.prefs.AbstractPreferences.removeNode() ()
          Implements the removeNode() method as per the specification in Preferences.removeNode() sample code for java.util.prefs.Preferences.removeNode() definition code for java.util.prefs.Preferences.removeNode() .
 void removeNodeChangeListener sample code for java.util.prefs.AbstractPreferences.removeNodeChangeListener(java.util.prefs.NodeChangeListener) definition code for java.util.prefs.AbstractPreferences.removeNodeChangeListener(java.util.prefs.NodeChangeListener) (NodeChangeListener sample code for java.util.prefs.NodeChangeListener definition code for java.util.prefs.NodeChangeListener  ncl)
          Removes the specified NodeChangeListener, so it no longer receives change events.
protected abstract  void removeNodeSpi