A  JavaBeanLongProperty provides an adapter between a regular
 Java Bean property of type  long or  Long and a JavaFX
  LongProperty. It cannot be created directly, but a
 JavaBeanLongPropertyBuilder has to be used.
 
 As a minimum, the Java Bean class must implement a getter and a setter for the
 property.
 The class, as well as the getter and a setter methods, must be declared public.
 If the getter of an instance of this class is called, the property of
 the Java Bean is returned. If the setter is called, the value will be passed
 to the Java Bean property. If the Java Bean property is bound (i.e. it supports
 PropertyChangeListeners), this  JavaBeanLongProperty will be
 aware of changes in the Java Bean. Otherwise it can be notified about
 changes by calling fireValueChangedEvent(). If the Java Bean property
 is also constrained (i.e. it supports VetoableChangeListeners), this
  JavaBeanLongProperty will reject changes, if it is bound to an
 ObservableValue<Long>.
 
Deploying an Application as a Module
 If the Java Bean class is in a named module, then it must be reflectively
 accessible to the  javafx.base module.
 A class is reflectively accessible if the module
 opens the containing package to at
 least the  javafx.base module.
 
 For example, if  com.foo.MyBeanClass is in the  foo.app module,
 the  module-info.java might
 look like this:
 
 module foo.app {
    opens com.foo to javafx.base;
}
 Alternatively, a class is reflectively accessible if the module
 exports the containing package
 unconditionally.
 
extends 
javafx.beans.property.LongProperty, JavaBeanLongPropertyBuilder