Package io.github.mmm.property

Provides the API for generic and powerful properties.

Property API


Unfortunately Java has no build in properties and will never have. For decades people had to waste their time writing stupid Java beans with getters, setters and other boilerplate code. Writing generic code on top of this is extremely complex and error prone and also results in relatively poor performance, access modifier violations, and many other flaws. Hence, data-bindings in Java have been a nightmare and where never compiler safe.
JavaFx wanted to cure this pain a little by introducing javafx.beans.property.Property a real property. This already brings a lot of benefits especially for data-bindings, but writing Java beans manually based on such properties is causing even more boiler-plate code. Further javafx.beans.property.Property still lacks a lot of build-in features such as support to determine the value type, validation, read-only views, JSON mapping, etc.
This API (and its implementation) comes with ReadableProperty and WritableProperty as well as all the sub-interfaces and implementations to give you full support for all your needs. Further, it the module io.github.mmm.bean from mmm-bean adds io.github.mmm.bean.Bean support on top of this properties and saves you from all the boilerplate code to implement your beans. Stop wasting your time and use your time to actually implement real value.
Note: You can also implement custom datatypes as property just like StringListProperty or DurationInSecondsProperty.
See Also:
StringProperty, BooleanProperty, IntegerProperty, LongProperty, BigDecimalProperty, InstantProperty, LocalDateProperty, LocalDateTimeProperty, ListProperty, SetProperty, MapProperty