Naoghuman / lib-preferences

Lib-Preferences is a library for easy storing simple data to a Preferences.properties file in a Java(FX) & Maven desktop application.
GNU General Public License v3.0
11 stars 1 forks source link
file java java-8 java-library javafx javafx-8 javafx-library library maven netbeans preference preferences

Lib-Preferences

Build Status license: GPL v3 GitHub release

Intention

Lib-Preferences is a library for easy storing simple data to a Preferences.properties file in a Java(FX) & Maven desktop application.

Image: UML Lib-Preferences
UML-diagram_Lib-Preferences_v0.6.0_2018-12-14_18-14.png

Hint
The UML diagram is created with the Online Modeling Platform GenMyModel.

Content

Specification

With the factory PreferencesFactory the developer have all tools to do the 3 main points from this library:

  1. Make the decision between the application and the module scope.
  2. Let the developer define the key which allowed to store or receive a value.
  3. And finally the decision if a value should be saved or received.

Application scope means that the key must be unique in the hole application.
Module scope means that the key must be unique in a package scope.

Usage of PreferencesFactory

/**
 * 1) Starts the factory process.
 * 2) Activate the 'application' scope.
 * 3) Activate the 'package' scope.
 * 4) Defines the 'key'.
 * 5) Returns the 'value' from type 'T'.
 * 6) Stores the value from type 'T'.
 */
PreferencesFactory.create() // 1
        .application()      // 2
        .module(Class)      // 3
        .key(final String)  // 4
        .get(T);            // 5
        .put(T);            // 6

Examples

How to save, access data in an application scope

How to save, access a Double in an application scope
@Test
public void thirdStepPutGetDoubleReturnsValue() {
    PreferencesFactory.create()
            .application()
            .key("dummy.key6")
            .put(1.2345d);

    double result = PreferencesFactory.create()
            .application()
            .key("dummy.key6")
            .get(5.4321d);
    assertEquals(1.2345d, result, 0);
}

which will write following entry in the file Preferences.properties:

com.github.naoghuman.lib.preferences.internal.dummy.key6=1.2345
How to save, access an Integer in an application scope
@Test
public void thirdStepPutGetIntegerReturnsValue() {
    PreferencesFactory.create()
            .application()
            .key("dummy.key8")
            .put(123456);

    int result = PreferencesFactory.create()
            .application()
            .key("dummy.key8")
            .get(654321);
    assertTrue(123456 == result);
}

which will write following entry in the file Preferences.properties:

com.github.naoghuman.lib.preferences.internal.dummy.key8=123456

How to save, access data in a module scope

How to save, access a Boolean in a module scope
@Test
public void thirdStepPutGetBooleanReturnsValueTrue() {
    PreferencesFactory.create()
            .module(DummyModuleScope.class)
            .key("dummy.key3")
            .put(Boolean.TRUE);

    assertTrue(PreferencesFactory.create()
            .module(DummyModuleScope.class)
            .key("dummy.key3")
            .get(Boolean.TRUE));
}

which will write following entry in the file Preferences.properties:

dummy.module.scope.dummy.key3=true
How to save, access a String in a module scope
@Test
public void thirdStepPutGetStringReturnsValue() {
    PreferencesFactory.create()
            .module(DummyModuleScope.class)
            .key("dummy.key12")
            .put("hello world");

    String result = PreferencesFactory.create()
            .module(DummyModuleScope.class)
            .key("dummy.key12")
            .get("world hello");
    assertEquals("hello world", result);
}

which will write following entry in the file Preferences.properties:

dummy.module.scope.dummy.key12=hello world

Conventions

In this chapter, the interested developer can find out about all the conventions in the library Lib-Preferences.

Features

Lib-Preferencs have many nice features which simplify the developers task to store and access simple data in a Java(FX) application:

JavaDoc

The JavaDoc from the library 'Lib-Preferences' can be explored here: JavaDoc Lib-Preferences v0.6.0

Image: JavaDoc Lib-Preferences v0.6.0
JavaDoc_Lib-Preferences_v0.6.0_2018-12-14_18-23.png

Download

Current version is 0.6.0. Main points in this release are:

Maven coordinates

<dependencies>
    <dependency>
        <groupId>com.github.naoghuman</groupId>
        <artifactId>lib-preferences</artifactId>
        <version>0.6.0</version>
    </dependency>
    <dependency>
        <groupId>com.github.naoghuman</groupId>
        <artifactId>lib-logger</artifactId>
        <version>0.6.0</version>
    </dependency>
</dependencies>

Download:

An overview about all existings releases can be found here:

Requirements

In the library following dependencies are registered:

Installation

Contribution

License

The project Lib-Preferences is licensed under General Public License 3.0.

Autor

The project Lib-Preferences is maintained by me, Naoghuman (Peter Rogge). See Contact.

Contact

You can reach me under peter.rogge@yahoo.de.