Mega Code Archive

 
Categories / Java / Development Class
 

Utility class for preferences

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