/property

brings extended properties and Java bean simplification.

Primary LanguageJavaApache License 2.0Apache-2.0

logo

Apache License, Version 2.0 Build Status

mmm-property

Maven Central base JavaDoc

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.

Features

  • 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

Usage

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;

mmm-property-builder

Maven Central base JavaDoc

The module io.github.mmm.property.builder (artifactId mmm-property-builder) brings comfortable builders to build properties from mmm-property with validation and nls.

Features

  • Individual builder per property with suffix Builder (e.g. StringPropertyBuilder).

  • StandardPropertyBuilders to compose all builders in a single API

Usage

Maven Dependency:

<dependency>
  <groupId>io.github.m-m-m</groupId>
  <artifactId>mmm-property-builder</artifactId>
  <version>${mmm.property.version}</version>
</dependency>

Module Dependency:

  requires transitive io.github.mmm.property.builder;