net.sf.staccatocommons.io.preferences
Class CharSerializationObjectPreferences

java.lang.Object
  extended by net.sf.staccatocommons.io.preferences.CharSerializationObjectPreferences
All Implemented Interfaces:
ObjectPreferences

public class CharSerializationObjectPreferences
extends Object
implements ObjectPreferences

ObjectPreferences implementation that serializes objects using a CharSerializationManager

Author:
flbulgarelli

Constructor Summary
CharSerializationObjectPreferences(Preferences preferences, CharSerializationManager stream)
          Creates a new CharSerializationObjectPreferences
 
Method Summary
 void flush()
          Refer too Preferences.flush()
<T> T
get(String key, T defaultValue)
           
 Preferences getNode()
           The actual preferences node that is backing objects storing implementation.
 void put(String key, Object value)
          Saves an Object in the backing Preferences system, serializing it to either a binary o character stream, depending on the implementation.
 void remove(String key)
           
 void sync()
           
static ObjectPreferences systemNodeForPackage(Class<?> clazz, CharSerializationManager serializarionManager)
          Answers a system node ObjectPreferences for the given class package
static ObjectPreferences userNodeForPackage(Class<?> clazz, CharSerializationManager serializarionManager)
          Answers an user node ObjectPreferences for the given class package
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CharSerializationObjectPreferences

public CharSerializationObjectPreferences(@NonNull
                                          Preferences preferences,
                                          @NonNull
                                          CharSerializationManager stream)
Creates a new CharSerializationObjectPreferences

Parameters:
preferences - non null.
stream - non null.
Method Detail

getNode

@NonNull
public Preferences getNode()
Description copied from interface: ObjectPreferences

The actual preferences node that is backing objects storing implementation.

Clients that want to store Strings, byte[] and primitives using ObjectPreferences must never use the ObjectPreferences.put(String, Object) method, but the specific messages of the preferences node, for example:

 objectPrefs.getNode().put("Hello", "World");
 

Specified by:
getNode in interface ObjectPreferences
Returns:
the Preferences node this ObjectPreferences sits on top

put

public void put(@NonNull
                String key,
                Object value)
Description copied from interface: ObjectPreferences
Saves an Object in the backing Preferences system, serializing it to either a binary o character stream, depending on the implementation. Only "small" objects should be saved, that is, objects with as few attributes as possible, which must be "small" too, due to backing store system space limitations.

Specified by:
put in interface ObjectPreferences
Parameters:
key - the key of the object to store
value - the object that will be stored either using a binary or character representation. More specific sizes must be defined by implementors.
See Also:
Preferences.putByteArray(String, byte[]), Preferences.put(String, String), Preferences.MAX_VALUE_LENGTH

get

public <T> T get(@NonNull
                 String key,
                 T defaultValue)
Specified by:
get in interface ObjectPreferences
Returns:
the value for that key

flush

public void flush()
           throws BackingStoreException
Description copied from interface: ObjectPreferences
Refer too Preferences.flush()

Specified by:
flush in interface ObjectPreferences
Throws:
BackingStoreException - if underlying Preferences throws it when flushing

sync

public void sync()
          throws BackingStoreException
Specified by:
sync in interface ObjectPreferences
Throws:
BackingStoreException - if underlying Preferences throws it when synchronizing
See Also:
Preferences#sync()}

remove

public void remove(String key)
Specified by:
remove in interface ObjectPreferences
Parameters:
key - the key to remove
See Also:
Preferences#remove(String)}

userNodeForPackage

public static ObjectPreferences userNodeForPackage(@NonNull
                                                   Class<?> clazz,
                                                   @NonNull
                                                   CharSerializationManager serializarionManager)
Answers an user node ObjectPreferences for the given class package

Parameters:
clazz -
serializarionManager - the CharSerializationManager to deserialize and serialize the objects
Returns:
a new ObjectPreferences

systemNodeForPackage

public static ObjectPreferences systemNodeForPackage(Class<?> clazz,
                                                     CharSerializationManager serializarionManager)
Answers a system node ObjectPreferences for the given class package

Parameters:
clazz -
serializarionManager - the CharSerializationManager to deserialize and serialize the objects
Returns:
a new ObjectPreferences


Copyright © 2010-2012 StaccatoCommons. All Rights Reserved.