diff --git a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java
index d279003594..76f4edddae 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java
@@ -4979,7 +4979,7 @@ public class JavaGenerator extends AbstractGenerator {
out.tab(1).javadoc("The parameter %s.%s", parameter.getQualifiedOutputName(), parameterComment(paramComment));
out.tab(1).println("val %s : %s[%s] = %s.createParameter(\"%s\", %s, %s, %s" + converterTemplate(converter) + converterTemplate(binding) + ")",
- paramId, Parameter.class, paramType, AbstractRoutine.class, paramName, paramTypeRef, isDefaulted, isUnnamed, converter, binding);
+ paramId, Parameter.class, paramType, Internal.class, paramName, paramTypeRef, isDefaulted, isUnnamed, converter, binding);
}
out.println("}");
@@ -5015,8 +5015,8 @@ public class JavaGenerator extends AbstractGenerator {
if (!printDeprecationIfUnknownType(out, paramTypeFull))
out.tab(1).javadoc("The parameter %s.%s", parameter.getQualifiedOutputName(), parameterComment(paramComment));
- out.tab(1).println("public static final %s<%s> %s = createParameter(\"%s\", %s, %s, %s" + converterTemplate(converter) + converterTemplate(binding) + ");",
- Parameter.class, paramType, paramId, paramName, paramTypeRef, isDefaulted, isUnnamed, converter, binding);
+ out.tab(1).println("public static final %s<%s> %s = %s.createParameter(\"%s\", %s, %s, %s" + converterTemplate(converter) + converterTemplate(binding) + ");",
+ Parameter.class, paramType, paramId, Internal.class, paramName, paramTypeRef, isDefaulted, isUnnamed, converter, binding);
}
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java
index 82f160700c..273f053d2e 100644
--- a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java
+++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java
@@ -1523,7 +1523,10 @@ public abstract class AbstractRoutine extends AbstractNamed implements Routin
* {@link Parameter#isDefaulted()}
* @param isUnnamed Whether the parameter is unnamed (see
* {@link Parameter#isUnnamed()}.
+ *
+ * @deprecated - Please, re-generate your routine code.
*/
+ @Deprecated
protected static final Parameter createParameter(String name, DataType type, boolean isDefaulted, boolean isUnnamed) {
return createParameter(name, type, isDefaulted, isUnnamed, null, null);
}
@@ -1538,7 +1541,10 @@ public abstract class AbstractRoutine extends AbstractNamed implements Routin
* {@link Parameter#isDefaulted()}
* @param isUnnamed Whether the parameter is unnamed (see
* {@link Parameter#isUnnamed()}.
+ *
+ * @deprecated - Please, re-generate your routine code.
*/
+ @Deprecated
protected static final Parameter createParameter(String name, DataType type, boolean isDefaulted, boolean isUnnamed, Converter converter) {
return createParameter(name, type, isDefaulted, isUnnamed, converter, null);
}
@@ -1553,7 +1559,10 @@ public abstract class AbstractRoutine extends AbstractNamed implements Routin
* {@link Parameter#isDefaulted()}
* @param isUnnamed Whether the parameter is unnamed (see
* {@link Parameter#isUnnamed()}.
+ *
+ * @deprecated - Please, re-generate your routine code.
*/
+ @Deprecated
protected static final Parameter createParameter(String name, DataType type, boolean isDefaulted, boolean isUnnamed, Binding binding) {
return createParameter(name, type, isDefaulted, isUnnamed, null, binding);
}
@@ -1568,7 +1577,10 @@ public abstract class AbstractRoutine extends AbstractNamed implements Routin
* {@link Parameter#isDefaulted()}
* @param isUnnamed Whether the parameter is unnamed (see
* {@link Parameter#isUnnamed()}.
+ *
+ * @deprecated - Please, re-generate your routine code.
*/
+ @Deprecated
@SuppressWarnings("unchecked")
protected static final Parameter createParameter(String name, DataType type, boolean isDefaulted, boolean isUnnamed, Converter converter, Binding binding) {
final Binding actualBinding = DefaultBinding.newBinding(converter, type, binding);
diff --git a/jOOQ/src/main/java/org/jooq/impl/Internal.java b/jOOQ/src/main/java/org/jooq/impl/Internal.java
index fa2b0f1d18..c3b32cfc8a 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Internal.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Internal.java
@@ -37,11 +37,15 @@
*/
package org.jooq.impl;
+import org.jooq.Binding;
+import org.jooq.Converter;
+import org.jooq.DataType;
import org.jooq.ForeignKey;
import org.jooq.Identity;
import org.jooq.Index;
import org.jooq.Name;
import org.jooq.OrderField;
+import org.jooq.Parameter;
import org.jooq.Record;
import org.jooq.Table;
import org.jooq.TableField;
@@ -123,6 +127,9 @@ public final class Internal {
return result;
}
+ /**
+ * Factory method for path aliases.
+ */
public static final Name createPathAlias(Table> child, ForeignKey, ?> path) {
Name name = DSL.name(path.getName());
@@ -138,5 +145,39 @@ public final class Internal {
return DSL.name("alias_" + Tools.hash(name));
}
+ /**
+ * Factory method for parameters.
+ */
+ public static final Parameter createParameter(String name, DataType type, boolean isDefaulted, boolean isUnnamed) {
+ return createParameter(name, type, isDefaulted, isUnnamed, null, null);
+ }
+
+ /**
+ * Factory method for parameters.
+ */
+ public static final Parameter createParameter(String name, DataType type, boolean isDefaulted, boolean isUnnamed, Converter converter) {
+ return createParameter(name, type, isDefaulted, isUnnamed, converter, null);
+ }
+
+ /**
+ * Factory method for parameters.
+ */
+ public static final Parameter createParameter(String name, DataType type, boolean isDefaulted, boolean isUnnamed, Binding binding) {
+ return createParameter(name, type, isDefaulted, isUnnamed, null, binding);
+ }
+
+ /**
+ * Factory method for parameters.
+ */
+ @SuppressWarnings("unchecked")
+ public static final Parameter createParameter(String name, DataType type, boolean isDefaulted, boolean isUnnamed, Converter converter, Binding binding) {
+ final Binding actualBinding = DefaultBinding.newBinding(converter, type, binding);
+ final DataType actualType = converter == null && binding == null
+ ? (DataType) type
+ : type.asConvertedDataType(actualBinding);
+
+ return new ParameterImpl(name, actualType, actualBinding, isDefaulted, isUnnamed);
+ }
+
private Internal() {}
}
diff --git a/pom.xml b/pom.xml
index cc7a628e20..a09374e420 100644
--- a/pom.xml
+++ b/pom.xml
@@ -272,7 +272,7 @@
net.alchim31.maven
scala-maven-plugin
- 3.4.2
+ 3.4.4
@@ -339,6 +339,7 @@
+