< prev index next >
modules/javafx.base/src/main/java/javafx/beans/binding/Bindings.java
Print this page
rev 10445 : [mq]: doc-v1-8177566-trampoline
*** 95,104 ****
--- 95,129 ----
* Also if you watched closely, you might have noticed that the return type of
* the Fluent API is different in the examples above. In a lot of cases the
* Fluent API allows to be more specific about the returned type (see
* {@link javafx.beans.binding.NumberExpression} for more details about implicit
* casting.
+ * </p>
+ * <p><a id="DeployAppAsModule"></a><b>Deploying an Application as a Module</b></p>
+ * <p>
+ * If any class used in a select-binding (see the various {@code select*}
+ * methods) is in a named module, then it must be reflectively accessible to the
+ * {@code javafx.base} module.
+ * A class is reflectively accessible if the module
+ * {@link Module#isOpen(String,Module) opens} the containing package to at
+ * least the {@code javafx.base} module.
+ * </p>
+ * <p>
+ * For example, if {@code com.foo.MyClass} is in the {@code foo.app} module,
+ * the {@code module-info.java} might
+ * look like this:
+ * </p>
+ *
+ <pre>{@code module foo.app {
+ opens com.foo to javafx.base;
+ }}</pre>
+ *
+ * <p>
+ * Alternatively, a class is reflectively accessible if the module
+ * {@link Module#isExported(String) exports} the containing package
+ * unconditionally.
+ * </p>
*
* @see Binding
* @see NumberBinding
*
*
*** 403,418 ****
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being the right type etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then the module
! * must {@link Module#isOpen(String,Module) open}
! * the containing package for that class to at least the
! * {@code javafx.base} module
! * (or {@link Module#isExported(String) export} the containing package
! * unconditionally).
* </p>
* <p>
* Note: since 8.0, JavaBeans properties are supported and might be in the chain.
* </p>
*
--- 428,440 ----
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being the right type etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then it must be
! * reflectively accessible to the {@code javafx.base} module (see
! * <a href="#DeployAppAsModule">Deploying an Application as a Module</a>).
* </p>
* <p>
* Note: since 8.0, JavaBeans properties are supported and might be in the chain.
* </p>
*
*** 433,448 ****
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code Number} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then the module
! * must {@link Module#isOpen(String,Module) open}
! * the containing package for that class to at least the
! * {@code javafx.base} module
! * (or {@link Module#isExported(String) export} the containing package
! * unconditionally).
* </p>
* <p>
* Note: since 8.0, JavaBeans properties are supported and might be in the chain.
* </p>
*
--- 455,467 ----
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code Number} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then it must be
! * reflectively accessible to the {@code javafx.base} module (see
! * <a href="#DeployAppAsModule">Deploying an Application as a Module</a>).
* </p>
* <p>
* Note: since 8.0, JavaBeans properties are supported and might be in the chain.
* </p>
*
*** 462,477 ****
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code Number} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then the module
! * must {@link Module#isOpen(String,Module) open}
! * the containing package for that class to at least the
! * {@code javafx.base} module
! * (or {@link Module#isExported(String) export} the containing package
! * unconditionally).
* </p>
* <p>
* Note: since 8.0, JavaBeans properties are supported and might be in the chain.
* </p>
*
--- 481,493 ----
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code Number} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then it must be
! * reflectively accessible to the {@code javafx.base} module (see
! * <a href="#DeployAppAsModule">Deploying an Application as a Module</a>).
* </p>
* <p>
* Note: since 8.0, JavaBeans properties are supported and might be in the chain.
* </p>
*
*** 491,506 ****
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code Number} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then the module
! * must {@link Module#isOpen(String,Module) open}
! * the containing package for that class to at least the
! * {@code javafx.base} module
! * (or {@link Module#isExported(String) export} the containing package
! * unconditionally).
* </p>
* <p>
* Note: since 8.0, JavaBeans properties are supported and might be in the chain.
* </p>
*
--- 507,519 ----
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code Number} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then it must be
! * reflectively accessible to the {@code javafx.base} module (see
! * <a href="#DeployAppAsModule">Deploying an Application as a Module</a>).
* </p>
* <p>
* Note: since 8.0, JavaBeans properties are supported and might be in the chain.
* </p>
*
*** 520,535 ****
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code Number} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then the module
! * must {@link Module#isOpen(String,Module) open}
! * the containing package for that class to at least the
! * {@code javafx.base} module
! * (or {@link Module#isExported(String) export} the containing package
! * unconditionally).
* </p>
* <p>
* Note: since 8.0, JavaBeans properties are supported and might be in the chain.
* </p>
*
--- 533,545 ----
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code Number} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then it must be
! * reflectively accessible to the {@code javafx.base} module (see
! * <a href="#DeployAppAsModule">Deploying an Application as a Module</a>).
* </p>
* <p>
* Note: since 8.0, JavaBeans properties are supported and might be in the chain.
* </p>
*
*** 549,564 ****
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code boolean} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then the module
! * must {@link Module#isOpen(String,Module) open}
! * the containing package for that class to at least the
! * {@code javafx.base} module
! * (or {@link Module#isExported(String) export} the containing package
! * unconditionally).
* </p>
* <p>
* Note: since 8.0, JavaBeans properties are supported and might be in the chain.
* </p>
*
--- 559,571 ----
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code boolean} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then it must be
! * reflectively accessible to the {@code javafx.base} module (see
! * <a href="#DeployAppAsModule">Deploying an Application as a Module</a>).
* </p>
* <p>
* Note: since 8.0, JavaBeans properties are supported and might be in the chain.
* </p>
*
*** 578,593 ****
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code String} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then the module
! * must {@link Module#isOpen(String,Module) open}
! * the containing package for that class to at least the
! * {@code javafx.base} module
! * (or {@link Module#isExported(String) export} the containing package
! * unconditionally).
* </p>
* <p>
* Note: since 8.0, JavaBeans properties are supported and might be in the chain.
* </p>
*
--- 585,597 ----
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code String} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then it must be
! * reflectively accessible to the {@code javafx.base} module (see
! * <a href="#DeployAppAsModule">Deploying an Application as a Module</a>).
* </p>
* <p>
* Note: since 8.0, JavaBeans properties are supported and might be in the chain.
* </p>
*
*** 607,622 ****
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being the right type etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then the module
! * must {@link Module#isOpen(String,Module) open}
! * the containing package for that class to at least the
! * {@code javafx.base} module
! * (or {@link Module#isExported(String) export} the containing package
! * unconditionally).
* </p>
*
* <p>
* If root has JavaFX properties, this call is equivalent to {@link #select(javafx.beans.value.ObservableValue, java.lang.String[])},
* with the {@code root} and {@code step[0]} being substituted with the relevant property object.
--- 611,623 ----
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being the right type etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then it must be
! * reflectively accessible to the {@code javafx.base} module (see
! * <a href="#DeployAppAsModule">Deploying an Application as a Module</a>).
* </p>
*
* <p>
* If root has JavaFX properties, this call is equivalent to {@link #select(javafx.beans.value.ObservableValue, java.lang.String[])},
* with the {@code root} and {@code step[0]} being substituted with the relevant property object.
*** 641,656 ****
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code Number} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then the module
! * must {@link Module#isOpen(String,Module) open}
! * the containing package for that class to at least the
! * {@code javafx.base} module
! * (or {@link Module#isExported(String) export} the containing package
! * unconditionally).
* </p>
*
* <p>
* If root has JavaFX properties, this call is equivalent to {@link #selectDouble(javafx.beans.value.ObservableValue, java.lang.String[])},
* with the {@code root} and {@code step[0]} being substituted with the relevant property object.
--- 642,654 ----
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code Number} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then it must be
! * reflectively accessible to the {@code javafx.base} module (see
! * <a href="#DeployAppAsModule">Deploying an Application as a Module</a>).
* </p>
*
* <p>
* If root has JavaFX properties, this call is equivalent to {@link #selectDouble(javafx.beans.value.ObservableValue, java.lang.String[])},
* with the {@code root} and {@code step[0]} being substituted with the relevant property object.
*** 674,689 ****
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code Number} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then the module
! * must {@link Module#isOpen(String,Module) open}
! * the containing package for that class to at least the
! * {@code javafx.base} module
! * (or {@link Module#isExported(String) export} the containing package
! * unconditionally).
* </p>
*
* <p>
* If root has JavaFX properties, this call is equivalent to {@link #selectFloat(javafx.beans.value.ObservableValue, java.lang.String[])},
* with the {@code root} and {@code step[0]} being substituted with the relevant property object.
--- 672,684 ----
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code Number} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then it must be
! * reflectively accessible to the {@code javafx.base} module (see
! * <a href="#DeployAppAsModule">Deploying an Application as a Module</a>).
* </p>
*
* <p>
* If root has JavaFX properties, this call is equivalent to {@link #selectFloat(javafx.beans.value.ObservableValue, java.lang.String[])},
* with the {@code root} and {@code step[0]} being substituted with the relevant property object.
*** 707,722 ****
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code Number} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then the module
! * must {@link Module#isOpen(String,Module) open}
! * the containing package for that class to at least the
! * {@code javafx.base} module
! * (or {@link Module#isExported(String) export} the containing package
! * unconditionally).
* </p>
*
* <p>
* If root has JavaFX properties, this call is equivalent to {@link #selectInteger(javafx.beans.value.ObservableValue, java.lang.String[])},
* with the {@code root} and {@code step[0]} being substituted with the relevant property object.
--- 702,714 ----
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code Number} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then it must be
! * reflectively accessible to the {@code javafx.base} module (see
! * <a href="#DeployAppAsModule">Deploying an Application as a Module</a>).
* </p>
*
* <p>
* If root has JavaFX properties, this call is equivalent to {@link #selectInteger(javafx.beans.value.ObservableValue, java.lang.String[])},
* with the {@code root} and {@code step[0]} being substituted with the relevant property object.
*** 740,755 ****
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code Number} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then the module
! * must {@link Module#isOpen(String,Module) open}
! * the containing package for that class to at least the
! * {@code javafx.base} module
! * (or {@link Module#isExported(String) export} the containing package
! * unconditionally).
* </p>
*
* <p>
* If root has JavaFX properties, this call is equivalent to {@link #selectLong(javafx.beans.value.ObservableValue, java.lang.String[])},
* with the {@code root} and {@code step[0]} being substituted with the relevant property object.
--- 732,744 ----
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code Number} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then it must be
! * reflectively accessible to the {@code javafx.base} module (see
! * <a href="#DeployAppAsModule">Deploying an Application as a Module</a>).
* </p>
*
* <p>
* If root has JavaFX properties, this call is equivalent to {@link #selectLong(javafx.beans.value.ObservableValue, java.lang.String[])},
* with the {@code root} and {@code step[0]} being substituted with the relevant property object.
*** 773,788 ****
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code boolean} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then the module
! * must {@link Module#isOpen(String,Module) open}
! * the containing package for that class to at least the
! * {@code javafx.base} module
! * (or {@link Module#isExported(String) export} the containing package
! * unconditionally).
* </p>
*
* <p>
* If root has JavaFX properties, this call is equivalent to {@link #selectBoolean(javafx.beans.value.ObservableValue, java.lang.String[])},
* with the {@code root} and {@code step[0]} being substituted with the relevant property object.
--- 762,774 ----
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code boolean} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then it must be
! * reflectively accessible to the {@code javafx.base} module (see
! * <a href="#DeployAppAsModule">Deploying an Application as a Module</a>).
* </p>
*
* <p>
* If root has JavaFX properties, this call is equivalent to {@link #selectBoolean(javafx.beans.value.ObservableValue, java.lang.String[])},
* with the {@code root} and {@code step[0]} being substituted with the relevant property object.
*** 806,821 ****
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code String} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then the module
! * must {@link Module#isOpen(String,Module) open}
! * the containing package for that class to at least the
! * {@code javafx.base} module
! * (or {@link Module#isExported(String) export} the containing package
! * unconditionally).
* </p>
*
* <p>
* If root has JavaFX properties, this call is equivalent to {@link #selectString(javafx.beans.value.ObservableValue, java.lang.String[])},
* with the {@code root} and {@code step[0]} being substituted with the relevant property object.
--- 792,804 ----
* be reached (due to {@code b} not having a {@code c} property,
* {@code b} being {@code null}, or {@code c} not being a {@code String} etc.).
* <p>
* All classes and properties used in a select-binding have to be
* declared public.
! * Additionally, if any class is in a named module, then it must be
! * reflectively accessible to the {@code javafx.base} module (see
! * <a href="#DeployAppAsModule">Deploying an Application as a Module</a>).
* </p>
*
* <p>
* If root has JavaFX properties, this call is equivalent to {@link #selectString(javafx.beans.value.ObservableValue, java.lang.String[])},
* with the {@code root} and {@code step[0]} being substituted with the relevant property object.
< prev index next >