diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/DefaultGenerator.java b/jOOQ-codegen/src/main/java/org/jooq/util/DefaultGenerator.java
index fccea4cf33..92869bd4a5 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/util/DefaultGenerator.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/util/DefaultGenerator.java
@@ -1883,7 +1883,7 @@ public class DefaultGenerator implements Generator {
out.println("\t *");
for (ParameterDefinition parameter : function.getInParameters()) {
- out.println("\t * @param " + strategy.getJavaClassNameLC(parameter));
+ out.println("\t * @param " + strategy.getJavaMemberName(parameter));
}
out.println("\t */");
@@ -1892,7 +1892,7 @@ public class DefaultGenerator implements Generator {
out.print("<");
out.print(getJavaType(function.getReturnType()));
out.print("> ");
- out.print(strategy.getJavaClassNameLC(function));
+ out.print(strategy.getJavaMethodName(function));
out.print("(");
String separator = "";
@@ -1909,7 +1909,7 @@ public class DefaultGenerator implements Generator {
}
out.print(" ");
- out.print(strategy.getJavaClassNameLC(parameter));
+ out.print(strategy.getJavaMemberName(parameter));
separator = ", ";
}
@@ -1922,7 +1922,11 @@ public class DefaultGenerator implements Generator {
out.println("();");
for (ParameterDefinition parameter : function.getInParameters()) {
- out.println("\t\tf.set" + strategy.getJavaClassName(parameter) + "(" + strategy.getJavaClassNameLC(parameter) + ");");
+ out.print("\t\tf.");
+ out.print(strategy.getJavaSetterName(parameter));
+ out.print("(");
+ out.print(strategy.getJavaMemberName(parameter));
+ out.println(");");
}
out.println();
@@ -1943,7 +1947,7 @@ public class DefaultGenerator implements Generator {
out.println("\t *");
for (ParameterDefinition parameter : function.getInParameters()) {
- out.println("\t * @param " + strategy.getJavaClassNameLC(parameter));
+ out.println("\t * @param " + strategy.getJavaMemberName(parameter));
}
printThrowsDataAccessException(out);
@@ -1956,7 +1960,7 @@ public class DefaultGenerator implements Generator {
out.print(getJavaType(function.getReturnType()));
out.print(" ");
- out.print(strategy.getJavaClassNameLC(function));
+ out.print(strategy.getJavaMethodName(function));
out.print("(");
String glue = "";
@@ -1975,7 +1979,7 @@ public class DefaultGenerator implements Generator {
out.print(glue);
printNumberType(out, parameter.getType());
out.print(" ");
- out.print(strategy.getJavaClassNameLC(parameter));
+ out.print(strategy.getJavaMemberName(parameter));
glue = ", ";
}
@@ -1988,15 +1992,15 @@ public class DefaultGenerator implements Generator {
out.println("();");
for (ParameterDefinition parameter : function.getInParameters()) {
- out.print("\t\tf.set");
- out.print(strategy.getJavaClassName(parameter));
+ out.print("\t\tf.");
+ out.print(strategy.getJavaSetterName(parameter));
out.print("(");
if (instance && parameter.equals(function.getInParameters().get(0))) {
out.print("this");
}
else {
- out.print(strategy.getJavaClassNameLC(parameter));
+ out.print(strategy.getJavaMemberName(parameter));
}
out.println(");");
@@ -2049,7 +2053,7 @@ public class DefaultGenerator implements Generator {
out.println("\t *");
for (ParameterDefinition parameter : procedure.getAllParameters()) {
- out.print("\t * @param " + strategy.getJavaClassNameLC(parameter) + " ");
+ out.print("\t * @param " + strategy.getJavaMemberName(parameter) + " ");
if (procedure.getInParameters().contains(parameter)) {
if (procedure.getOutParameters().contains(parameter)) {
@@ -2081,7 +2085,7 @@ public class DefaultGenerator implements Generator {
out.print(strategy.getFullJavaClassName(procedure) + " ");
}
- out.print(strategy.getJavaClassNameLC(procedure));
+ out.print(strategy.getJavaMethodName(procedure));
out.print("(");
String glue = "";
@@ -2100,7 +2104,7 @@ public class DefaultGenerator implements Generator {
out.print(glue);
printNumberType(out, parameter.getType());
out.print(" ");
- out.print(strategy.getJavaClassNameLC(parameter));
+ out.print(strategy.getJavaMemberName(parameter));
glue = ", ";
}
@@ -2113,15 +2117,15 @@ public class DefaultGenerator implements Generator {
out.println("();");
for (ParameterDefinition parameter : procedure.getInParameters()) {
- out.print("\t\tp.set");
- out.print(strategy.getJavaClassName(parameter));
+ out.print("\t\tp.");
+ out.print(strategy.getJavaSetterName(parameter));
out.print("(");
if (instance && parameter.equals(procedure.getInParameters().get(0))) {
out.print("this");
}
else {
- out.print(strategy.getJavaClassNameLC(parameter));
+ out.print(strategy.getJavaMemberName(parameter));
}
out.println(");");
@@ -2141,14 +2145,14 @@ public class DefaultGenerator implements Generator {
if (procedure.getOutParameters().size() > 0) {
if (instance) {
- out.print("\t\tfrom(p.get");
- out.print(strategy.getJavaClassName(procedure.getOutParameters().get(0)));
+ out.print("\t\tfrom(p.");
+ out.print(strategy.getJavaGetterName(procedure.getOutParameters().get(0)));
out.println("());");
}
if (procedure.getOutParameters().size() == 1) {
- out.print("\t\treturn p.get");
- out.print(strategy.getJavaClassName(procedure.getOutParameters().get(0)));
+ out.print("\t\treturn p.");
+ out.print(strategy.getJavaGetterName(procedure.getOutParameters().get(0)));
out.println("();");
}
else if (procedure.getOutParameters().size() > 1) {
diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/DefaultGeneratorStrategy.java b/jOOQ-codegen/src/main/java/org/jooq/util/DefaultGeneratorStrategy.java
index 16360491b7..a1037c72bd 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/util/DefaultGeneratorStrategy.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/util/DefaultGeneratorStrategy.java
@@ -182,6 +182,11 @@ public class DefaultGeneratorStrategy implements GeneratorStrategy {
return "get" + disambiguateMethod(definition, getJavaClassName(definition));
}
+ @Override
+ public String getJavaMethodName(Definition definition) {
+ return disambiguateMethod(definition, getJavaClassName0LC(definition, Mode.DEFAULT));
+ }
+
/**
* [#182] Method name disambiguation is important to avoid name clashes due
* to pre-existing getters / setters in super classes
@@ -289,14 +294,29 @@ public class DefaultGeneratorStrategy implements GeneratorStrategy {
}
@Override
+ @Deprecated
public final String getJavaClassNameLC(Definition definition) {
- return getJavaClassNameLC(definition, Mode.DEFAULT);
+ return getJavaMemberName(definition, Mode.DEFAULT);
}
@Override
- public String getJavaClassNameLC(Definition definition, Mode mode) {
- String result = getJavaClassName0(definition, mode);
+ @Deprecated
+ public final String getJavaClassNameLC(Definition definition, Mode mode) {
+ return getJavaMemberName(definition, mode);
+ }
+ @Override
+ public final String getJavaMemberName(Definition definition) {
+ return getJavaMemberName(definition, Mode.DEFAULT);
+ }
+
+ @Override
+ public String getJavaMemberName(Definition definition, Mode mode) {
+ return getJavaClassName0LC(definition, mode);
+ }
+
+ private String getJavaClassName0LC(Definition definition, Mode mode) {
+ String result = getJavaClassName0(definition, mode);
return result.substring(0, 1).toLowerCase() + result.substring(1);
}
diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/GeneratorStrategy.java b/jOOQ-codegen/src/main/java/org/jooq/util/GeneratorStrategy.java
index 1fd8ed45d2..c73b43c1a4 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/util/GeneratorStrategy.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/util/GeneratorStrategy.java
@@ -65,6 +65,10 @@ public interface GeneratorStrategy {
void setTargetPackage(String packageName);
/**
+ * This is applied to definitions that can result in singleton static and
+ * instance members. For instance, the singleton instance of a
+ * {@link TableDefinition} is a java identifier
+ *
* @return The Java identifier representing this object, e.g. [my_table]
*/
String getJavaIdentifier(Definition definition);
@@ -81,17 +85,37 @@ public interface GeneratorStrategy {
String getFullJavaIdentifierUC(Definition definition);
/**
+ * This is applied to definitions that can result in setters of a container.
+ * For example, the definition could be a {@link ColumnDefinition}, the
+ * container a {@link TableDefinition}. Then this would apply to records and
+ * POJOs. Also, the definition could be an {@link AttributeDefinition} and
+ * the container a {@link UDTDefinition}
+ *
* @return The Java setter method name representing this object, e.g.
* [setMyTable]
*/
String getJavaSetterName(Definition definition);
/**
+ * This is applied to definitions that can result in getters of a container.
+ * For example, the definition could be a {@link ColumnDefinition}, the
+ * container a {@link TableDefinition}. Then this would apply to records and
+ * POJOs. Also, the definition could be an {@link AttributeDefinition} and
+ * the container a {@link UDTDefinition}
+ *
* @return The Java getter method name representing this object, e.g.
* [getMyTable]
*/
String getJavaGetterName(Definition definition);
+ /**
+ * This is applied to definitions that can result in methods. For example,
+ * the definition could be a {@link RoutineDefinition}
+ *
+ * @return The Java method name representing this object, e.g. [myFunction]
+ */
+ String getJavaMethodName(Definition definition);
+
/**
* This is the same as calling
* getJavaClassName(definition, Mode.DEFAULT)
@@ -107,14 +131,14 @@ public interface GeneratorStrategy {
String getJavaClassName(Definition definition, Mode mode);
/**
+ * This is the same as calling
+ * getJavaPackageName(definition, Mode.DEFAULT)
+ *
* @return The Java package name of this object, e.g. [org.jooq.generated]
*/
String getJavaPackageName(Definition definition);
/**
- * This is the same as calling
- * getJavaClassName(definition, Mode.DEFAULT)
- *
* @return The Java package name of this object, e.g. [org.jooq.generated]
*/
String getJavaPackageName(Definition definition, Mode mode);
@@ -122,17 +146,56 @@ public interface GeneratorStrategy {
/**
* @return The Java class name representing this object, starting with a
* lower case character, e.g. [myTable]
+ * @deprecated - 2.0.5 - Use {@link #getJavaMemberName(Definition)} or
+ * {@link #getJavaMethodName(Definition)} instead. The notion of
+ * this being a class name starting with a lower-case letter is
+ * too intrusive for custom generator strategies.
*/
+ @Deprecated
String getJavaClassNameLC(Definition definition);
/**
+ * @return The Java class name representing this object, starting with a
+ * lower case character, e.g. [myTableSuffix]
+ * @deprecated - 2.0.5 - Use {@link #getJavaMemberName(Definition, Mode)} or
+ * {@link #getJavaMethodName(Definition)} instead. The notion of
+ * this being a class name starting with a lower-case letter is
+ * too intrusive for custom generator strategies.
+ */
+ @Deprecated
+ String getJavaClassNameLC(Definition definition, Mode mode);
+
+ /**
+ * The "java member name" is applied where a definition is used as a member
+ * (for POJOs) or as a method argument (for setters). Example definitions
+ * are
+ *
getJavaClassName(definition, Mode.DEFAULT)
+ * getJavaMemberName(definition, Mode.DEFAULT)
+ *
+ * @return The Java class name representing this object, starting with a
+ * lower case character, e.g. [myTable]
+ */
+ String getJavaMemberName(Definition definition);
+
+ /**
+ * The "java member name" is applied where a definition is used as a member
+ * (for POJOs) or as a method argument (for setters). Example definitions
+ * are
+ * getJavaClassName(definition, Mode.DEFAULT)
+ * getFullJavaClassName(definition, Mode.DEFAULT)
*
* @return The full Java class name representing this object, e.g.
* [org.jooq.generated.MyTable][suffix]