[#5215] Companion object for routine classes generated by ScalaGenerator cause java.lang.IllegalAccessError at runtime
This commit is contained in:
parent
0092d91acf
commit
add8767a68
@ -4979,7 +4979,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
out.tab(1).javadoc("The parameter <code>%s</code>.%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 <code>%s</code>.%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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1523,7 +1523,10 @@ public abstract class AbstractRoutine<T> 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 <T> Parameter<T> createParameter(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed) {
|
||||
return createParameter(name, type, isDefaulted, isUnnamed, null, null);
|
||||
}
|
||||
@ -1538,7 +1541,10 @@ public abstract class AbstractRoutine<T> 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 <T, U> Parameter<U> createParameter(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed, Converter<T, U> converter) {
|
||||
return createParameter(name, type, isDefaulted, isUnnamed, converter, null);
|
||||
}
|
||||
@ -1553,7 +1559,10 @@ public abstract class AbstractRoutine<T> 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 <T, U> Parameter<U> createParameter(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed, Binding<T, U> binding) {
|
||||
return createParameter(name, type, isDefaulted, isUnnamed, null, binding);
|
||||
}
|
||||
@ -1568,7 +1577,10 @@ public abstract class AbstractRoutine<T> 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 <T, X, U> Parameter<U> createParameter(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed, Converter<X, U> converter, Binding<T, X> binding) {
|
||||
final Binding<T, U> actualBinding = DefaultBinding.newBinding(converter, type, binding);
|
||||
|
||||
@ -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 <T> Parameter<T> createParameter(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed) {
|
||||
return createParameter(name, type, isDefaulted, isUnnamed, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Factory method for parameters.
|
||||
*/
|
||||
public static final <T, U> Parameter<U> createParameter(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed, Converter<T, U> converter) {
|
||||
return createParameter(name, type, isDefaulted, isUnnamed, converter, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Factory method for parameters.
|
||||
*/
|
||||
public static final <T, U> Parameter<U> createParameter(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed, Binding<T, U> binding) {
|
||||
return createParameter(name, type, isDefaulted, isUnnamed, null, binding);
|
||||
}
|
||||
|
||||
/**
|
||||
* Factory method for parameters.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public static final <T, X, U> Parameter<U> createParameter(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed, Converter<X, U> converter, Binding<T, X> binding) {
|
||||
final Binding<T, U> actualBinding = DefaultBinding.newBinding(converter, type, binding);
|
||||
final DataType<U> actualType = converter == null && binding == null
|
||||
? (DataType<U>) type
|
||||
: type.asConvertedDataType(actualBinding);
|
||||
|
||||
return new ParameterImpl<U>(name, actualType, actualBinding, isDefaulted, isUnnamed);
|
||||
}
|
||||
|
||||
private Internal() {}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user