diff --git a/jOOQ/src/main/java/org/jooq/impl/QOM.java b/jOOQ/src/main/java/org/jooq/impl/QOM.java index e6b632ec68..3c2ac4bd50 100644 --- a/jOOQ/src/main/java/org/jooq/impl/QOM.java +++ b/jOOQ/src/main/java/org/jooq/impl/QOM.java @@ -134,39 +134,29 @@ import org.jetbrains.annotations.Nullable; *
* This class provides a single namespace for jOOQ's query object model API.
* Every {@link QueryPart} from the DSL API has a matching {@link QueryPart}
- * representation in this API, and an internal implementation in the
- * org.jooq.impl package, that covers both the DSL and model API
- * functionality.
+ * representation in this query object model API, and a shared internal
+ * implementation in the org.jooq.impl package, that covers both
+ * the DSL and model API functionality.
*
* The goal of this model API is to allow for expression tree transformations - * that are independent of the DSL API that would otherwise be too noisy for - * this task. + * via {@link QueryPart#$replace(Function1)} as well as via per-querypart + * methods, such as for example {@link Substring#$startingPosition(Field)}, and + * traversals via {@link QueryPart#$traverse(Traverser)} that are independent of + * the DSL API that would otherwise be too noisy for this task. *
*
* In order to avoid conflicts between the model API and the DSL API, all model * API in this class follows these naming conventions: *
MXyz, e.g.
- * {@link QueryPart}org.jooq package.$property(), e.g. {@link Substring#$startingPosition()} and
+ * {@link Substring#$startingPosition(Field)}.UXyz, e.g.
* {@link UEmpty}$property(), e.g.
- * {@link Not#$arg1()}- * Furthermore, the current draft design lets each {@link QueryPart} publicly - * extend its matching {@link QueryPart}. This may not be the case in - * the future, as long as this API is experimental, a backwards incompatible - * change may revert this. Alternative possible designs include: - *
*
SELECT .. FOR UPDATE
+ * clause, as substantial changes to the internal model are still required
+ * before being able to offer public access to it.*
@@ -190,11 +187,10 @@ import org.jetbrains.annotations.Nullable; *
*
- * The Java 17 distribution of jOOQ will make use of sealed types to improve the - * usability of the model API in pattern matching expressions etc. The - * implementations currently can't be made publicly available - * {@link java.lang.Record} types, because of the existing internal type - * hierarchy. + * A future Java 17 distribution of jOOQ might make use of sealed types to + * improve the usability of the model API in pattern matching expressions etc. + * Other Java language features that benefit pattern matching expression trees + * might be adopted in the future in this area of the jOOQ API. * * @author Lukas Eder */