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
Hint
TheUML
diagram is created with theOnline Modeling Platform
GenMyModel.
With the factory PreferencesFactory the developer have all tools to do the 3 main points from this library:
application
and the module
scope.key
which allowed to store or receive a value.value
should be saved or received.
Application
scope means that thekey
must be unique in the hole application.
Module
scope means that thekey
must be unique in a package scope.
/**
* 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
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
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
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
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
In this chapter, the interested developer can find out about all the conventions
in the library Lib-Preferences
.
Preferences.properties
.user.dir
(application folder) if needed.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.function
with parameters
will be verified by the internal validator
DefaultPreferencesValidator. For example a String can't be NULL or EMPTY.Lib-Preferencs
have many nice features which simplify the developers task to
store and access simple data in a Java(FX) application:
Lib-Preferences
allowed to store and access simple data (Boolean, Double, Integer,
Long and String) in a Preferences.properties
file.application
folder (user.dir) if needed.application
scope means
that the key
must be unique in the hole application while the module
scope
specified that the key
must unique in a package scope (for more information
about this topic plz see the JavaDoc.parameter
in all functionalities will be verified against minimal conditions
with the internal validator DefaultPreferencesValidator. For example a String
can't be NULL
or EMPTY
.core
and internal
packages are
tested with Unittests
.ReadMe
and well written
[JavaDoc] commentaries.open source
and licensed under General Public License 3.0.Lib-Preferences
is a Java 8
library and can also be used in a JavaFX 8
application.Travis CI
automatically a build
is performed with every commit.badges
from img.shield.io
the interested
reader can easily inform himself about the build
state, current release and which
license is used for this library.The JavaDoc
from the library 'Lib-Preferences' can be explored here: JavaDoc Lib-Preferences v0.6.0
Image: JavaDoc Lib-Preferences v0.6.0
Current version
is 0.6.0
. Main points in this release are:
Examples
, Conventions
and Features
from this library.JavaDoc
from this library is uploaded to the GitHub project and can now received online.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:
In the library following dependencies are registered:
Lib-Logger
is the library log4j-api-2.10.0.jar.Lib-Logger
is the library log4j-core-2.10.0.jar.Bug
I will be glad if you could report an Issue.The project Lib-Preferences
is licensed under General Public License 3.0.
The project Lib-Preferences
is maintained by me, Naoghuman (Peter Rogge). See Contact.
You can reach me under peter.rogge@yahoo.de.