PrefsUtil.java Source code

Java tutorial

Introduction

Here is the source code for PrefsUtil.java

Source

/*
 * Copyright Javelin Software, All rights reserved.
 */

import java.util.*;
import java.util.prefs.*;

/**
 * Utility class for prefs
 *
 * @author Robin Sharp
 */

public class PrefsUtil {
    /**
     * Clear all the node
     */
    public static void clear(Preferences preferences, String key) {
        try {
            if (preferences.nodeExists(key)) {
                preferences.node(key).clear();
            }
        } catch (BackingStoreException bse) {
            bse.printStackTrace();
        }
    }

    /**
     * Remove the node
     */
    public static void remove(Preferences preferences, String key) {
        try {
            if (preferences.nodeExists(key)) {
                preferences.node(key).removeNode();
            }
        } catch (BackingStoreException bse) {
            bse.printStackTrace();
        }
    }

    /**
     * Puts a list into the preferences.
     */
    public static void putMap(Preferences preferences, Map map, String key) {
        putMap(preferences.node(key), map);
    }

    /**
     * Puts a list into the preferences.
     */
    public static void putMap(Preferences preferences, Map map) {
        if (preferences == null) {
            throw new IllegalArgumentException("Preferences not set.");
        }

        for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) {
            Map.Entry entry = (Map.Entry) iter.next();
            Object value = entry.getValue();
            preferences.put(entry.getKey().toString(), value == null ? null : value.toString());
        }
    }

    /**
     * Gets a Map from the preferences.
     */
    public static Map getMap(Preferences preferences, String key) {
        return getMap(preferences.node(key));
    }

    /**
     * Gets a Map from the preferences.
     */
    public static Map getMap(Preferences preferences) {
        if (preferences == null) {
            throw new IllegalArgumentException("Preferences not set.");
        }

        Map map = new HashMap();

        try {
            String[] keys = preferences.keys();

            for (int index = 0; index < keys.length; index++) {
                map.put(keys[index], preferences.get(keys[index], null));
            }
        } catch (BackingStoreException bse) {
            bse.printStackTrace();
        }

        return map;
    }

    /**
     * Puts a list into the preferences starting with "0" then "1"
     */
    public static void putList(Preferences preferences, List list, String key) {
        putList(preferences.node(key), list);
    }

    /**
     * Puts a list into the preferences starting with "0" then "1"
     */
    public static void putList(Preferences preferences, List list) {
        if (preferences == null) {
            throw new IllegalArgumentException("Preferences not set.");
        }
        //System.out.println( "LIST=" + list );
        for (int index = 0; list != null && index < list.size(); index++) {
            Object value = list.get(index);
            preferences.put("" + index, value == null ? null : value.toString());
        }
    }

    /**
     * Gets a List from the preferences, starting with "0", then "1" etc
     */
    public static List getList(Preferences preferences, String key) {
        return getList(preferences.node(key));
    }

    /**
     * Gets a List from the preferences, starting with "0", then "1" etc
     */
    public static List getList(Preferences preferences) {
        if (preferences == null) {
            throw new IllegalArgumentException("Preferences not set.");
        }

        List list = new ArrayList();

        for (int index = 0; index < 1000; index++) {
            String value = preferences.get("" + index, null);
            if (value == null)
                break;
            //System.out.println( ""+index+ " " + value );
            list.add(value);
        }

        return list;
    }

    public static void main(String[] args) {
        try {
            Map map = new HashMap();
            map.put("0", "A");
            map.put("1", "B");
            map.put("2", "C");
            map.put("3", "D");
            map.put("5", "f");

            Preferences prefs = Preferences.userNodeForPackage(String.class);

            String RECENT_FILES = "XXX";

            List recentFiles = PrefsUtil.getList(prefs, RECENT_FILES);
            PrefsUtil.clear(prefs, RECENT_FILES);

            PrefsUtil.putList(prefs, recentFiles, RECENT_FILES);

            //System.out.println( PrefsUtil.getList( prefs, RECENT_FILES ) );

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}