Lib-Preferences

Lib-Preferences is a library for easy storing simple data in a Preferences.properties file in a Java(FX) & Maven desktop application. See https://github.com/Naoghuman/lib-preferences for more details.

License

License

GroupId

GroupId

com.github.naoghuman
ArtifactId

ArtifactId

lib-preferences
Last Version

Last Version

0.6.0
Release Date

Release Date

Type

Type

jar
Description

Description

Lib-Preferences
Lib-Preferences is a library for easy storing simple data in a Preferences.properties file in a Java(FX) & Maven desktop application. See https://github.com/Naoghuman/lib-preferences for more details.
Project URL

Project URL

https://github.com/Naoghuman/lib-preferences.git
Project Organization

Project Organization

Naoghuman's dream
Source Code Management

Source Code Management

https://github.com/Naoghuman/lib-preferences.git

Download lib-preferences

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.naoghuman/lib-preferences/ -->
<dependency>
    <groupId>com.github.naoghuman</groupId>
    <artifactId>lib-preferences</artifactId>
    <version>0.6.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.naoghuman/lib-preferences/
implementation 'com.github.naoghuman:lib-preferences:0.6.0'
// https://jarcasting.com/artifacts/com.github.naoghuman/lib-preferences/
implementation ("com.github.naoghuman:lib-preferences:0.6.0")
'com.github.naoghuman:lib-preferences:jar:0.6.0'
<dependency org="com.github.naoghuman" name="lib-preferences" rev="0.6.0">
  <artifact name="lib-preferences" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.naoghuman', module='lib-preferences', version='0.6.0')
)
libraryDependencies += "com.github.naoghuman" % "lib-preferences" % "0.6.0"
[com.github.naoghuman/lib-preferences "0.6.0"]

Dependencies

compile (1)

Group / Artifact Type Version
com.github.naoghuman : lib-logger jar 0.6.0

test (1)

Group / Artifact Type Version
junit : junit jar 4.12

Project Modules

There are no modules declared in this project.

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:

  • Overview from all releases in Lib-Preferences.

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.

Versions

Version
0.6.0
0.5.1
0.5.0
0.4.0