Class DefaultPreferencesFactory

java.lang.Object
org.tentackle.prefs.DefaultPreferencesFactory
All Implemented Interfaces:
PreferencesFactory, PersistedPreferencesFactory

public class DefaultPreferencesFactory extends Object implements PersistedPreferencesFactory
Factory for Preferences wrapped by PersistedPreferences.
Use case is to map invocations of PersistedPreferences by the framework or applications back to the standard java util prefs. The preferences will then no more be persisted in the database.
To activate, extend this class and annotate with @Service(PersistedPreferencesFactory.class).
You may also override the methods isSystemOnly, systemRoot, and systemNodeForPackage since system root is usually not writable by normal users.
Furthermore, consider overriding userRoot/systemRoot as well to prepend a sub node for non-class preferences such as table settings.

Example:


@Service(PersistedPreferencesFactory.class)
public class JavaUtilPreferencesFactory extends DefaultPreferencesFactory {

  @Override
  public boolean isSystemOnly() {
    return false;
  }

  @Override
  public DefaultPreferences userRoot() {
    return super.userRoot().node("MyApp");
  }

  @Override
  public DefaultPreferences systemRoot() {
    return userRoot();
  }

  @Override
  public DefaultPreferences systemNodeForPackage(Class<?> c) {
    return userNodeForPackage(c);
  }
}
CAUTION: don't register this factory as a PreferencesFactory as this would cause an endless loop!