Development Class Java

/*
 * 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();
        }
    }
}