preferences.java
来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 666 行 · 第 1/2 页
JAVA
666 行
*
* @exception BackingStoreException when the backing store cannot be
* reached
* @exception IllegalStateException when this node has been removed
*/
abstract public String[] childrenNames() throws BackingStoreException;
/**
* Returns a sub node of this preferences node if the given path is
* relative (does not start with a '/') or a sub node of the root
* if the path is absolute (does start with a '/').
*
* @exception IllegalStateException if this node has been removed
* @exception IllegalArgumentException if the path contains two or more
* consecutive '/' characters, ends with a '/' charactor and is not the
* string "/" (indicating the root node) or any name on the path is more
* then 80 characters long
*/
abstract public Preferences node(String path);
/**
* Returns true if the node that the path points to exists in memory or
* in the backing store. Otherwise it returns false or an exception is
* thrown. When this node is removed the only valid parameter is the
* empty string (indicating this node), the return value in that case
* will be false.
*
* @exception BackingStoreException when the backing store cannot be
* reached
* @exception IllegalStateException if this node has been removed
* and the path is not the empty string (indicating this node)
* @exception IllegalArgumentException if the path contains two or more
* consecutive '/' characters, ends with a '/' charactor and is not the
* string "/" (indicating the root node) or any name on the path is more
* then 80 characters long
*/
abstract public boolean nodeExists(String path)
throws BackingStoreException;
/**
* Returns the parent preferences node of this node or null if this is
* the root of the preferences tree.
*
* @exception IllegalStateException if this node has been removed
*/
abstract public Preferences parent();
// abstract methods (export)
/**
* XXX
*/
abstract public void exportNode(OutputStream os)
throws BackingStoreException,
IOException;
/**
* XXX
*/
abstract public void exportSubtree(OutputStream os)
throws BackingStoreException,
IOException;
// abstract methods (preference entry manipulation)
/**
* Returns an (possibly empty) array with all the keys of the preference
* entries of this node.
*
* @exception BackingStoreException when the backing store cannot be
* reached
* @exception IllegalStateException if this node has been removed
*/
abstract public String[] keys() throws BackingStoreException;
/**
* Returns the value associated with the key in this preferences node. If
* the default value of the key cannot be found in the preferences node
* entries or something goes wrong with the backing store the supplied
* default value is returned.
*
* @exception IllegalArgumentException if key is larger then 80 characters
* @exception IllegalStateException if this node has been removed
* @exception NullPointerException if key is null
*/
abstract public String get(String key, String defaultVal);
/**
* Convenience method for getting the given entry as a boolean.
* When the string representation of the requested entry is either
* "true" or "false" (ignoring case) then that value is returned,
* otherwise the given default boolean value is returned.
*
* @exception IllegalArgumentException if key is larger then 80 characters
* @exception IllegalStateException if this node has been removed
* @exception NullPointerException if key is null
*/
abstract public boolean getBoolean(String key, boolean defaultVal);
/**
* Convenience method for getting the given entry as a byte array.
* When the string representation of the requested entry is a valid
* Base64 encoded string (without any other characters, such as newlines)
* then the decoded Base64 string is returned as byte array,
* otherwise the given default byte array value is returned.
*
* @exception IllegalArgumentException if key is larger then 80 characters
* @exception IllegalStateException if this node has been removed
* @exception NullPointerException if key is null
*/
abstract public byte[] getByteArray(String key, byte[] defaultVal);
/**
* Convenience method for getting the given entry as a double.
* When the string representation of the requested entry can be decoded
* with <code>Double.parseDouble()</code> then that double is returned,
* otherwise the given default double value is returned.
*
* @exception IllegalArgumentException if key is larger then 80 characters
* @exception IllegalStateException if this node has been removed
* @exception NullPointerException if key is null
*/
abstract public double getDouble(String key, double defaultVal);
/**
* Convenience method for getting the given entry as a float.
* When the string representation of the requested entry can be decoded
* with <code>Float.parseFloat()</code> then that float is returned,
* otherwise the given default float value is returned.
*
* @exception IllegalArgumentException if key is larger then 80 characters
* @exception IllegalStateException if this node has been removed
* @exception NullPointerException if key is null
*/
abstract public float getFloat(String key, float defaultVal);
/**
* Convenience method for getting the given entry as an integer.
* When the string representation of the requested entry can be decoded
* with <code>Integer.parseInt()</code> then that integer is returned,
* otherwise the given default integer value is returned.
*
* @exception IllegalArgumentException if key is larger then 80 characters
* @exception IllegalStateException if this node has been removed
* @exception NullPointerException if key is null
*/
abstract public int getInt(String key, int defaultVal);
/**
* Convenience method for getting the given entry as a long.
* When the string representation of the requested entry can be decoded
* with <code>Long.parseLong()</code> then that long is returned,
* otherwise the given default long value is returned.
*
* @exception IllegalArgumentException if key is larger then 80 characters
* @exception IllegalStateException if this node has been removed
* @exception NullPointerException if key is null
*/
abstract public long getLong(String key, long defaultVal);
/**
* Sets the value of the given preferences entry for this node.
* Key and value cannot be null, the key cannot exceed 80 characters
* and the value cannot exceed 8192 characters.
* <p>
* The result will be immediatly visible in this VM, but may not be
* immediatly written to the backing store.
*
* @exception NullPointerException if either key or value are null
* @exception IllegalArgumentException if either key or value are to large
* @exception IllegalStateException when this node has been removed
*/
abstract public void put(String key, String value);
/**
* Convenience method for setting the given entry as a boolean.
* The boolean is converted with <code>Boolean.toString(value)</code>
* and then stored in the preference entry as that string.
*
* @exception NullPointerException if key is null
* @exception IllegalArgumentException if the key length is to large
* @exception IllegalStateException when this node has been removed
*/
abstract public void putBoolean(String key, boolean value);
/**
* Convenience method for setting the given entry as an array of bytes.
* The byte array is converted to a Base64 encoded string
* and then stored in the preference entry as that string.
* <p>
* Note that a byte array encoded as a Base64 string will be about 1.3
* times larger then the original length of the byte array, which means
* that the byte array may not be larger about 6 KB.
*
* @exception NullPointerException if either key or value are null
* @exception IllegalArgumentException if either key or value are to large
* @exception IllegalStateException when this node has been removed
*/
abstract public void putByteArray(String key, byte[] value);
/**
* Convenience method for setting the given entry as a double.
* The double is converted with <code>Double.toString(double)</code>
* and then stored in the preference entry as that string.
*
* @exception NullPointerException if the key is null
* @exception IllegalArgumentException if the key length is to large
* @exception IllegalStateException when this node has been removed
*/
abstract public void putDouble(String key, double value);
/**
* Convenience method for setting the given entry as a float.
* The float is converted with <code>Float.toString(float)</code>
* and then stored in the preference entry as that string.
*
* @exception NullPointerException if the key is null
* @exception IllegalArgumentException if the key length is to large
* @exception IllegalStateException when this node has been removed
*/
abstract public void putFloat(String key, float value);
/**
* Convenience method for setting the given entry as an integer.
* The integer is converted with <code>Integer.toString(int)</code>
* and then stored in the preference entry as that string.
*
* @exception NullPointerException if the key is null
* @exception IllegalArgumentException if the key length is to large
* @exception IllegalStateException when this node has been removed
*/
abstract public void putInt(String key, int value);
/**
* Convenience method for setting the given entry as a long.
* The long is converted with <code>Long.toString(long)</code>
* and then stored in the preference entry as that string.
*
* @exception NullPointerException if the key is null
* @exception IllegalArgumentException if the key length is to large
* @exception IllegalStateException when this node has been removed
*/
abstract public void putLong(String key, long value);
/**
* Removes the preferences entry from this preferences node.
* <p>
* The result will be immediatly visible in this VM, but may not be
* immediatly written to the backing store.
*
* @exception NullPointerException if the key is null
* @exception IllegalArgumentException if the key length is to large
* @exception IllegalStateException when this node has been removed
*/
abstract public void remove(String key);
// abstract methods (preference node manipulation)
/**
* Removes all entries from this preferences node. May need access to the
* backing store to get and clear all entries.
* <p>
* The result will be immediatly visible in this VM, but may not be
* immediatly written to the backing store.
*
* @exception BackingStoreException when the backing store cannot be
* reached
* @exception IllegalStateException if this node has been removed
*/
abstract public void clear() throws BackingStoreException;
/**
* Writes all preference changes on this and any subnode that have not
* yet been written to the backing store. This has no effect on the
* preference entries in this VM, but it makes sure that all changes
* are visible to other programs (other VMs might need to call the
* <code>sync()</code> method to actually see the changes to the backing
* store.
*
* @exception BackingStoreException when the backing store cannot be
* reached
* @exception IllegalStateException if this node has been removed
*/
abstract public void flush() throws BackingStoreException;
/**
* Writes and reads all preference changes to and from this and any
* subnodes. This makes sure that all local changes are written to the
* backing store and that all changes to the backing store are visible
* in this preference node (and all subnodes).
*
* @exception BackingStoreException when the backing store cannot be
* reached
* @exception IllegalStateException if this node has been removed
*/
abstract public void sync() throws BackingStoreException;
/**
* Removes this and all subnodes from the backing store and clears all
* entries. After removal this instance will not be useable (except for
* a few methods that don't throw a <code>InvalidStateException</code>),
* even when a new node with the same path name is created this instance
* will not be usable again. The root (system or user) may never be removed.
* <p>
* Note that according to the specification an implementation may delay
* removal of the node from the backing store till the <code>flush()</code>
* method is called. But the <code>flush()</code> method may throw a
* <code>IllegalStateException</code> when the node has been removed.
* So most implementations will actually remove the node and any subnodes
* from the backing store immediatly.
*
* @exception BackingStoreException when the backing store cannot be
* reached
* @exception IllegalStateException if this node has already been removed
* @exception UnsupportedOperationException if this is a root node
*/
abstract public void removeNode() throws BackingStoreException;
// abstract methods (listeners)
abstract public void addNodeChangeListener(NodeChangeListener listener);
abstract public void addPreferenceChangeListener
(PreferenceChangeListener listener);
abstract public void removeNodeChangeListener(NodeChangeListener listener);
abstract public void removePreferenceChangeListener
(PreferenceChangeListener listener);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?