diff options
| author | Mark Wielaard <mark@klomp.org> | 2001-09-02 15:34:43 +0000 |
|---|---|---|
| committer | Mark Wielaard <mark@klomp.org> | 2001-09-02 15:34:43 +0000 |
| commit | b4a5bf5126f223bbf633ce7cf3e310f749aca13f (patch) | |
| tree | 83e0639b40df81d6a39cb73b86166d039e5b5d2f /gnu/java/util/prefs/MemoryBasedPreferences.java | |
| parent | 7de1193dabed821089e14086624e8cccdd0bc28c (diff) | |
| download | classpath-b4a5bf5126f223bbf633ce7cf3e310f749aca13f.tar.gz | |
* configure.in (AC_OUTPUT): List new Makefiles.
* gnu/java/Makefile.am (SUBDIRS): Added util.
* java/util/Makefile.am (SUBDIRS): Added prefs.
* gnu/java/util/.cvsignore, gnu/java/util/Makefile.am,
gnu/java/util/prefs/.cvsignore, gnu/java/util/prefs/Makefile.am,
java/util/prefs/.cvsignore, java/util/prefs/Makefile.am: New files.
* gnu/java/util/prefs/FileBasedFactory.java,
gnu/java/util/prefs/MemoryBasedFactory.java
gnu/java/util/prefs/MemoryBasedPreferences.java
gnu/java/util/prefs/NodeReader.java
gnu/java/util/prefs/NodeWriter.java
java/util/prefs/AbstractPreferences.java
java/util/prefs/BackingStoreException.java
java/util/prefs/InvalidPreferencesFormatException.java
java/util/prefs/NodeChangeEvent.java
java/util/prefs/NodeChangeListener.java
java/util/prefs/PreferenceChangeEvent.java
java/util/prefs/PreferenceChangeListener.java
java/util/prefs/Preferences.java
java/util/prefs/PreferencesFactory.java: New class files.
Diffstat (limited to 'gnu/java/util/prefs/MemoryBasedPreferences.java')
| -rw-r--r-- | gnu/java/util/prefs/MemoryBasedPreferences.java | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/gnu/java/util/prefs/MemoryBasedPreferences.java b/gnu/java/util/prefs/MemoryBasedPreferences.java new file mode 100644 index 000000000..f4cdeec06 --- /dev/null +++ b/gnu/java/util/prefs/MemoryBasedPreferences.java @@ -0,0 +1,133 @@ +/* MemoryBasedPreferences - A Preference node which holds all entries in memory + Copyright (C) 2001 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +02111-1307 USA. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. */ + +package gnu.java.util.prefs; + +import java.util.HashMap; + +import java.util.prefs.*; + +/** + * A Preference node which holds all entries in memory + * + * @author Mark Wielaard (mark@klomp.org) + */ +public class MemoryBasedPreferences extends AbstractPreferences { + + /** True if this is a preference node in the user tree, false otherwise. */ + private final boolean isUser; + + /** Contains all the preference entries of this node. */ + private HashMap entries = new HashMap(); + + /** + * Creates a new preferences node with the given name and parent. + * When isUser is true it will be user node otherwise it will be a system + * node. It will always set the <code>newNode</code> field to true + * since there is no real backing store, so all nodes are new. + */ + public MemoryBasedPreferences(MemoryBasedPreferences parent, + String name, + boolean isUser) { + super(parent, name); + this.isUser = isUser; + + // Since we do not have a real backing store all nodes are new + newNode = true; + } + + /** + * Returns true if this node was created as a user node. + */ + public boolean isUserNode() { + return isUser; + } + + /** + * Returns an empty array since all children names are always already + * chached. + */ + protected String[] childrenNamesSpi() throws BackingStoreException { + return new String[0]; + } + + /** + * Returns a new node with the given name with as parent this node and + * with the <code>isUser</code> flag set to the same value as this node. + */ + protected AbstractPreferences childSpi(String childName) { + return new MemoryBasedPreferences(this, childName, isUser); + } + + /** + * Returns a (possibly empty) array of keys of the preferences entries of + * this node. + */ + protected String[] keysSpi() throws BackingStoreException { + return (String[]) entries.keySet().toArray(new String[entries.size()]); + } + + /** + * Returns the associated value from this nodes preferences entries or + * null when the key has not been set. + */ + protected String getSpi(String key) { + return (String) entries.get(key); + } + + /** + * Sets the value for the given key. + */ + protected void putSpi(String key, String value) { + entries.put(key, value); + } + + /** + * Removes the entry with the given key. + */ + protected void removeSpi(String key) { + entries.remove(key); + } + + /** + * Does nothing since we do not have any backing store. + */ + protected void flushSpi() { + } + + /** + * Does nothing since we do not have any backing store. + */ + protected void syncSpi() { + } + + /** + * Just removes the entries map of this node. + */ + protected void removeNodeSpi() { + entries = null; + } +} |
