The module io.github.mmm.property
(artifactId mmm-property
) brings extended property support based on mmm-value-observable
.
It was inspired from JavaFx, but as JavaFx properties are bundled with a GUI framework, projects do not want to dependend on it if they are not using JavaFx.
Further JavaFx properties are lacking some features so we reimplemented the whole thing from scratch.
-
Property with name, value, type, optional metadata
-
Ability to add listeners or bindings
-
Properties for all common Java datatypes
-
Easily extendable for custom types
-
Type of property can be retrieved even if value is null
-
Build-in validation support
-
Build-in marshalling support for mapping from/to JSON or XML
Maven Dependency:
<dependency>
<groupId>io.github.m-m-m</groupId>
<artifactId>mmm-property</artifactId>
<version>${mmm.property.version}</version>
</dependency>
Module Dependency:
requires transitive io.github.mmm.property;
The module io.github.mmm.property.builder
(artifactId mmm-property-builder
) brings comfortable builders to build properties from mmm-property
with validation and nls.
-
Individual builder per property with suffix
Builder
(e.g.StringPropertyBuilder
). -
StandardPropertyBuilders
to compose all builders in a single API