[jOOQ/jOOQ#10013] Add <constructorPropertiesAnnotation/> to generate @ConstructorProperties on pojos and records
This commit is contained in:
parent
06d4f1fe50
commit
c2df94da47
@ -37,6 +37,8 @@
|
||||
*/
|
||||
package org.jooq.codegen;
|
||||
|
||||
import static java.lang.Boolean.TRUE;
|
||||
|
||||
import java.io.File;
|
||||
import java.sql.Connection;
|
||||
import java.sql.SQLException;
|
||||
@ -56,92 +58,94 @@ import org.jooq.tools.JooqLogger;
|
||||
*/
|
||||
abstract class AbstractGenerator implements Generator {
|
||||
|
||||
private static final JooqLogger log = JooqLogger.getLogger(AbstractGenerator.class);
|
||||
private static final JooqLogger log = JooqLogger.getLogger(AbstractGenerator.class);
|
||||
|
||||
boolean generateDeprecated = true;
|
||||
boolean generateDeprecationOnUnknownTypes = true;
|
||||
boolean generateIndexes = true;
|
||||
boolean generateRelations = true;
|
||||
boolean generateImplicitJoinPathsToOne = true;
|
||||
boolean generateInstanceFields = true;
|
||||
boolean generateGeneratedAnnotation = false;
|
||||
GeneratedAnnotationType generatedGeneratedAnnotationType = GeneratedAnnotationType.DETECT_FROM_JDK;
|
||||
boolean generateNonnullAnnotation = false;
|
||||
String generatedNonnullAnnotationType = "javax.annotation.Nonnull";
|
||||
boolean generateNullableAnnotation = false;
|
||||
String generatedNullableAnnotationType = "javax.annotation.Nullable";
|
||||
boolean useSchemaVersionProvider = false;
|
||||
boolean useCatalogVersionProvider = false;
|
||||
boolean generateRoutines = true;
|
||||
boolean generateSequences = true;
|
||||
boolean generateSequenceFlags = true;
|
||||
boolean generateUDTs = true;
|
||||
boolean generateTables = true;
|
||||
boolean generateEmbeddables = true;
|
||||
boolean generateRecords = true;
|
||||
boolean generateRecordsImplementingRecordN = true;
|
||||
boolean generatePojos = false;
|
||||
boolean generatePojosEqualsAndHashCode = false;
|
||||
boolean generatePojosToString = true;
|
||||
boolean generateImmutablePojos = false;
|
||||
boolean generateSerializablePojos = true;
|
||||
boolean generateInterfaces = false;
|
||||
boolean generateImmutableInterfaces = false;
|
||||
boolean generateSerializableInterfaces = true;
|
||||
boolean generateDaos = false;
|
||||
boolean generateJPAAnnotations = false;
|
||||
String generateJPAVersion = "";
|
||||
boolean generateValidationAnnotations = false;
|
||||
boolean generateSpringAnnotations = false;
|
||||
boolean generateQueues = true;
|
||||
boolean generateLinks = true;
|
||||
boolean generateKeys = true;
|
||||
boolean generateGlobalObjectReferences = true;
|
||||
boolean generateGlobalCatalogReferences = true;
|
||||
boolean generateGlobalSchemaReferences = true;
|
||||
boolean generateGlobalRoutineReferences = true;
|
||||
boolean generateGlobalSequenceReferences = true;
|
||||
boolean generateGlobalTableReferences = true;
|
||||
boolean generateGlobalUDTReferences = true;
|
||||
boolean generateGlobalQueueReferences = true;
|
||||
boolean generateGlobalLinkReferences = true;
|
||||
boolean generateGlobalKeyReferences = true;
|
||||
boolean generateGlobalIndexReferences = true;
|
||||
boolean generateJavadoc = true;
|
||||
boolean generateComments = true;
|
||||
boolean generateCommentsOnAttributes = true;
|
||||
boolean generateCommentsOnCatalogs = true;
|
||||
boolean generateCommentsOnColumns = true;
|
||||
boolean generateCommentsOnKeys = true;
|
||||
boolean generateCommentsOnLinks = true;
|
||||
boolean generateCommentsOnPackages = true;
|
||||
boolean generateCommentsOnParameters = true;
|
||||
boolean generateCommentsOnQueues = true;
|
||||
boolean generateCommentsOnRoutines = true;
|
||||
boolean generateCommentsOnSchemas = true;
|
||||
boolean generateCommentsOnSequences = true;
|
||||
boolean generateCommentsOnTables = true;
|
||||
boolean generateCommentsOnUDTs = true;
|
||||
boolean generateSources = true;
|
||||
boolean generateSourcesOnViews = true;
|
||||
boolean generateFluentSetters = false;
|
||||
boolean generateJavaBeansGettersAndSetters = false;
|
||||
boolean generateVarargsSetters = true;
|
||||
String generateFullyQualifiedTypes = "";
|
||||
boolean generateJavaTimeTypes = true;
|
||||
boolean generateTableValuedFunctions = false;
|
||||
boolean generateEmptyCatalogs = false;
|
||||
boolean generateEmptySchemas = false;
|
||||
boolean generatePrimaryKeyTypes = false;
|
||||
String generateNewline = "\n";
|
||||
boolean generateDeprecated = true;
|
||||
boolean generateDeprecationOnUnknownTypes = true;
|
||||
boolean generateIndexes = true;
|
||||
boolean generateRelations = true;
|
||||
boolean generateImplicitJoinPathsToOne = true;
|
||||
boolean generateInstanceFields = true;
|
||||
boolean generateGeneratedAnnotation = false;
|
||||
GeneratedAnnotationType generatedGeneratedAnnotationType = GeneratedAnnotationType.DETECT_FROM_JDK;
|
||||
boolean generateNonnullAnnotation = false;
|
||||
String generatedNonnullAnnotationType = "javax.annotation.Nonnull";
|
||||
boolean generateNullableAnnotation = false;
|
||||
String generatedNullableAnnotationType = "javax.annotation.Nullable";
|
||||
boolean generateConstructorPropertiesAnnotation = false;
|
||||
Boolean generateConstructorPropertiesAnnotationOnPojos;
|
||||
Boolean generateConstructorPropertiesAnnotationOnRecords;
|
||||
boolean useSchemaVersionProvider = false;
|
||||
boolean useCatalogVersionProvider = false;
|
||||
boolean generateRoutines = true;
|
||||
boolean generateSequences = true;
|
||||
boolean generateSequenceFlags = true;
|
||||
boolean generateUDTs = true;
|
||||
boolean generateTables = true;
|
||||
boolean generateEmbeddables = true;
|
||||
boolean generateRecords = true;
|
||||
boolean generateRecordsImplementingRecordN = true;
|
||||
boolean generatePojos = false;
|
||||
boolean generatePojosEqualsAndHashCode = false;
|
||||
boolean generatePojosToString = true;
|
||||
boolean generateImmutablePojos = false;
|
||||
boolean generateSerializablePojos = true;
|
||||
boolean generateInterfaces = false;
|
||||
boolean generateImmutableInterfaces = false;
|
||||
boolean generateSerializableInterfaces = true;
|
||||
boolean generateDaos = false;
|
||||
boolean generateJPAAnnotations = false;
|
||||
String generateJPAVersion = "";
|
||||
boolean generateValidationAnnotations = false;
|
||||
boolean generateSpringAnnotations = false;
|
||||
boolean generateQueues = true;
|
||||
boolean generateLinks = true;
|
||||
boolean generateKeys = true;
|
||||
boolean generateGlobalObjectReferences = true;
|
||||
boolean generateGlobalCatalogReferences = true;
|
||||
boolean generateGlobalSchemaReferences = true;
|
||||
boolean generateGlobalRoutineReferences = true;
|
||||
boolean generateGlobalSequenceReferences = true;
|
||||
boolean generateGlobalTableReferences = true;
|
||||
boolean generateGlobalUDTReferences = true;
|
||||
boolean generateGlobalQueueReferences = true;
|
||||
boolean generateGlobalLinkReferences = true;
|
||||
boolean generateGlobalKeyReferences = true;
|
||||
boolean generateGlobalIndexReferences = true;
|
||||
boolean generateJavadoc = true;
|
||||
boolean generateComments = true;
|
||||
boolean generateCommentsOnAttributes = true;
|
||||
boolean generateCommentsOnCatalogs = true;
|
||||
boolean generateCommentsOnColumns = true;
|
||||
boolean generateCommentsOnKeys = true;
|
||||
boolean generateCommentsOnLinks = true;
|
||||
boolean generateCommentsOnPackages = true;
|
||||
boolean generateCommentsOnParameters = true;
|
||||
boolean generateCommentsOnQueues = true;
|
||||
boolean generateCommentsOnRoutines = true;
|
||||
boolean generateCommentsOnSchemas = true;
|
||||
boolean generateCommentsOnSequences = true;
|
||||
boolean generateCommentsOnTables = true;
|
||||
boolean generateCommentsOnUDTs = true;
|
||||
boolean generateSources = true;
|
||||
boolean generateSourcesOnViews = true;
|
||||
boolean generateFluentSetters = false;
|
||||
boolean generateJavaBeansGettersAndSetters = false;
|
||||
boolean generateVarargsSetters = true;
|
||||
String generateFullyQualifiedTypes = "";
|
||||
boolean generateJavaTimeTypes = true;
|
||||
boolean generateTableValuedFunctions = false;
|
||||
boolean generateEmptyCatalogs = false;
|
||||
boolean generateEmptySchemas = false;
|
||||
boolean generatePrimaryKeyTypes = false;
|
||||
String generateNewline = "\n";
|
||||
String generateIndentation;
|
||||
|
||||
protected GeneratorStrategyWrapper strategy;
|
||||
protected String targetEncoding = "UTF-8";
|
||||
protected boolean targetClean = true;
|
||||
protected String targetEncoding = "UTF-8";
|
||||
protected boolean targetClean = true;
|
||||
final Language language;
|
||||
|
||||
|
||||
AbstractGenerator(Language language) {
|
||||
this.language = language;
|
||||
}
|
||||
@ -343,6 +347,38 @@ abstract class AbstractGenerator implements Generator {
|
||||
this.generatedNullableAnnotationType = generatedNullableAnnotationType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setGenerateConstructorPropertiesAnnotation(boolean generateConstructorPropertiesAnnotation) {
|
||||
this.generateConstructorPropertiesAnnotation = generateConstructorPropertiesAnnotation;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean generateConstructorPropertiesAnnotation() {
|
||||
return generateConstructorPropertiesAnnotation;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setGenerateConstructorPropertiesAnnotationOnPojos(boolean generateConstructorPropertiesAnnotationOnPojos) {
|
||||
this.generateConstructorPropertiesAnnotationOnPojos = generateConstructorPropertiesAnnotationOnPojos;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean generateConstructorPropertiesAnnotationOnPojos() {
|
||||
return TRUE.equals(generateConstructorPropertiesAnnotationOnPojos) ||
|
||||
generateConstructorPropertiesAnnotation() && generateConstructorPropertiesAnnotationOnPojos == null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setGenerateConstructorPropertiesAnnotationOnRecords(boolean generateConstructorPropertiesAnnotationOnRecords) {
|
||||
this.generateConstructorPropertiesAnnotationOnRecords = generateConstructorPropertiesAnnotationOnRecords;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean generateConstructorPropertiesAnnotationOnRecords() {
|
||||
return TRUE.equals(generateConstructorPropertiesAnnotationOnPojos) ||
|
||||
generateConstructorPropertiesAnnotation() && generateConstructorPropertiesAnnotationOnRecords == null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean useSchemaVersionProvider() {
|
||||
return useSchemaVersionProvider;
|
||||
|
||||
@ -678,6 +678,12 @@ public class GenerationTool {
|
||||
generator.setGenerateNullableAnnotation(g.getGenerate().isNullableAnnotation());
|
||||
if (g.getGenerate().getNullableAnnotationType() != null)
|
||||
generator.setGeneratedNullableAnnotationType(g.getGenerate().getNullableAnnotationType());
|
||||
if (g.getGenerate().isConstructorPropertiesAnnotation() != null)
|
||||
generator.setGenerateConstructorPropertiesAnnotation(g.getGenerate().isConstructorPropertiesAnnotation());
|
||||
if (g.getGenerate().isConstructorPropertiesAnnotationOnPojos() != null)
|
||||
generator.setGenerateConstructorPropertiesAnnotationOnPojos(g.getGenerate().isConstructorPropertiesAnnotationOnPojos());
|
||||
if (g.getGenerate().isConstructorPropertiesAnnotationOnRecords() != null)
|
||||
generator.setGenerateConstructorPropertiesAnnotationOnRecords(g.getGenerate().isConstructorPropertiesAnnotationOnRecords());
|
||||
if (g.getGenerate().isRoutines() != null)
|
||||
generator.setGenerateRoutines(g.getGenerate().isRoutines());
|
||||
if (g.getGenerate().isSequences() != null)
|
||||
|
||||
@ -213,6 +213,37 @@ public interface Generator {
|
||||
*/
|
||||
void setGeneratedNullableAnnotationType(String generatedNullableAnnotationType);
|
||||
|
||||
/**
|
||||
* Whether the <code>ConstructorProperties</code> annotation should be generated.
|
||||
*/
|
||||
void setGenerateConstructorPropertiesAnnotation(boolean generateConstructorPropertiesAnnotation);
|
||||
|
||||
/**
|
||||
* Whether the <code>ConstructorProperties</code> annotation should be generated.
|
||||
*/
|
||||
boolean generateConstructorPropertiesAnnotation();
|
||||
|
||||
/**
|
||||
* Whether the <code>ConstructorProperties</code> annotation should be generated on POJOs.
|
||||
*/
|
||||
void setGenerateConstructorPropertiesAnnotationOnPojos(boolean generateConstructorPropertiesAnnotationOnPojos);
|
||||
|
||||
/**
|
||||
* Whether the <code>ConstructorProperties</code> annotation should be generated on POJOs.
|
||||
*/
|
||||
boolean generateConstructorPropertiesAnnotationOnPojos();
|
||||
|
||||
/**
|
||||
* Whether the <code>ConstructorProperties</code> annotation should be generated on records.
|
||||
*/
|
||||
void setGenerateConstructorPropertiesAnnotationOnRecords(boolean generateConstructorPropertiesAnnotationOnRecords);
|
||||
|
||||
/**
|
||||
* Whether the <code>ConstructorProperties</code> annotation should be generated on records.
|
||||
*/
|
||||
boolean generateConstructorPropertiesAnnotationOnRecords();
|
||||
|
||||
|
||||
boolean useSchemaVersionProvider();
|
||||
void setUseSchemaVersionProvider(boolean useSchemaVersionProvider);
|
||||
boolean useCatalogVersionProvider();
|
||||
|
||||
@ -52,6 +52,7 @@ import static org.jooq.meta.AbstractTypedElementDefinition.getDataType;
|
||||
import static org.jooq.tools.StringUtils.defaultIfBlank;
|
||||
import static org.jooq.tools.StringUtils.defaultString;
|
||||
|
||||
import java.beans.ConstructorProperties;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.RandomAccessFile;
|
||||
@ -1585,6 +1586,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
// [#3176] Avoid generating constructors for tables with more than 255 columns (Java's method argument limit)
|
||||
if (degree > 0 && degree < 256) {
|
||||
List<String> arguments = new ArrayList<>(degree);
|
||||
List<String> properties = new ArrayList<>(degree);
|
||||
|
||||
for (int i = 0; i < degree; i++) {
|
||||
final TypedElementDefinition<?> column = columns.get(i);
|
||||
@ -1599,6 +1601,8 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
|
||||
arguments.add((nullableAnnotation == null ? "" : "@" + nullableAnnotation + " ") + type + " " + columnMember);
|
||||
}
|
||||
|
||||
properties.add("\"" + escapeString(columnMember) + "\"");
|
||||
}
|
||||
|
||||
out.tab(1).javadoc("Create a detached, initialised %s", className);
|
||||
@ -1608,6 +1612,9 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
out.tab(2).println("this()", tableIdentifier);
|
||||
}
|
||||
else {
|
||||
if (generateConstructorPropertiesAnnotationOnRecords())
|
||||
out.tab(1).println("@%s({ [[%s]] })", ConstructorProperties.class, properties);
|
||||
|
||||
out.tab(1).println("public %s([[%s]]) {", className, arguments);
|
||||
|
||||
if (tableUdtOrEmbeddable instanceof EmbeddableDefinition)
|
||||
@ -3381,10 +3388,13 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
*/
|
||||
protected void generatePojoMultiConstructor(Definition tableOrUDT, JavaWriter out) {
|
||||
final String className = getStrategy().getJavaClassName(tableOrUDT, Mode.POJO);
|
||||
final List<String> properties = new ArrayList<>();
|
||||
|
||||
int maxLength = 0;
|
||||
for (TypedElementDefinition<?> column : getTypedElements(tableOrUDT))
|
||||
for (TypedElementDefinition<?> column : getTypedElements(tableOrUDT)) {
|
||||
maxLength = Math.max(maxLength, out.ref(getJavaType(column.getType(resolver(Mode.POJO)), Mode.POJO)).length());
|
||||
properties.add("\"" + escapeString(getStrategy().getJavaMemberName(column, Mode.POJO)) + "\"");
|
||||
}
|
||||
|
||||
if (scala) {
|
||||
}
|
||||
@ -3394,6 +3404,10 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
else if (getTypedElements(tableOrUDT).size() > 0 &&
|
||||
getTypedElements(tableOrUDT).size() < 256) {
|
||||
out.println();
|
||||
|
||||
if (generateConstructorPropertiesAnnotationOnPojos())
|
||||
out.tab(1).println("@%s({ [[%s]] })", ConstructorProperties.class, properties);
|
||||
|
||||
out.tab(1).print("public %s(", className);
|
||||
|
||||
String separator1 = "";
|
||||
|
||||
@ -32,7 +32,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class CatalogMappingType implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlElement(required = true, defaultValue = "")
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String inputCatalog = "";
|
||||
|
||||
@ -48,7 +48,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class Configuration implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlSchemaType(name = "string")
|
||||
protected Logging logging;
|
||||
@XmlElement(defaultValue = "FAIL")
|
||||
|
||||
@ -29,7 +29,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class CustomType implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlElement(required = true)
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String name;
|
||||
|
||||
@ -33,7 +33,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class Database implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String name;
|
||||
@XmlList
|
||||
|
||||
@ -32,7 +32,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class Embeddable implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String name;
|
||||
@XmlElementWrapper(name = "fields")
|
||||
|
||||
@ -42,7 +42,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class EmbeddableField implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String name;
|
||||
@XmlElement(required = true)
|
||||
|
||||
@ -42,7 +42,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class EnumType implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlElement(required = true)
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String name;
|
||||
|
||||
@ -29,7 +29,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class ForcedType implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String name;
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
|
||||
@ -29,7 +29,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class Generate implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlElement(defaultValue = "true")
|
||||
protected Boolean indexes = true;
|
||||
@XmlElement(defaultValue = "true")
|
||||
@ -59,6 +59,10 @@ public class Generate implements Serializable, XMLAppendable
|
||||
@XmlElement(defaultValue = "javax.annotation.Nullable")
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String nullableAnnotationType = "javax.annotation.Nullable";
|
||||
@XmlElement(defaultValue = "false")
|
||||
protected Boolean constructorPropertiesAnnotation = false;
|
||||
protected Boolean constructorPropertiesAnnotationOnPojos;
|
||||
protected Boolean constructorPropertiesAnnotationOnRecords;
|
||||
@XmlElement(defaultValue = "true")
|
||||
protected Boolean routines = true;
|
||||
@XmlElement(defaultValue = "true")
|
||||
@ -480,6 +484,78 @@ public class Generate implements Serializable, XMLAppendable
|
||||
this.nullableAnnotationType = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the {@link java.beans.ConstructorProperties} annotation on generated POJOs and/or records.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link Boolean }
|
||||
*
|
||||
*/
|
||||
public Boolean isConstructorPropertiesAnnotation() {
|
||||
return constructorPropertiesAnnotation;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the value of the constructorPropertiesAnnotation property.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link Boolean }
|
||||
*
|
||||
*/
|
||||
public void setConstructorPropertiesAnnotation(Boolean value) {
|
||||
this.constructorPropertiesAnnotation = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the {@link java.beans.ConstructorProperties} annotation on generated POJOs (defaults to <code>true</code> if {@link #constructorPropertiesAnnotation} is active).
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link Boolean }
|
||||
*
|
||||
*/
|
||||
public Boolean isConstructorPropertiesAnnotationOnPojos() {
|
||||
return constructorPropertiesAnnotationOnPojos;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the value of the constructorPropertiesAnnotationOnPojos property.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link Boolean }
|
||||
*
|
||||
*/
|
||||
public void setConstructorPropertiesAnnotationOnPojos(Boolean value) {
|
||||
this.constructorPropertiesAnnotationOnPojos = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the {@link java.beans.ConstructorProperties} annotation on generated records (defaults to <code>true</code> if {@link #constructorPropertiesAnnotation} is active).
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link Boolean }
|
||||
*
|
||||
*/
|
||||
public Boolean isConstructorPropertiesAnnotationOnRecords() {
|
||||
return constructorPropertiesAnnotationOnRecords;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the value of the constructorPropertiesAnnotationOnRecords property.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link Boolean }
|
||||
*
|
||||
*/
|
||||
public void setConstructorPropertiesAnnotationOnRecords(Boolean value) {
|
||||
this.constructorPropertiesAnnotationOnRecords = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate Routine classes.
|
||||
*
|
||||
@ -2020,6 +2096,21 @@ public class Generate implements Serializable, XMLAppendable
|
||||
return this;
|
||||
}
|
||||
|
||||
public Generate withConstructorPropertiesAnnotation(Boolean value) {
|
||||
setConstructorPropertiesAnnotation(value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Generate withConstructorPropertiesAnnotationOnPojos(Boolean value) {
|
||||
setConstructorPropertiesAnnotationOnPojos(value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Generate withConstructorPropertiesAnnotationOnRecords(Boolean value) {
|
||||
setConstructorPropertiesAnnotationOnRecords(value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Generate withRoutines(Boolean value) {
|
||||
setRoutines(value);
|
||||
return this;
|
||||
@ -2360,6 +2451,9 @@ public class Generate implements Serializable, XMLAppendable
|
||||
builder.append("nonnullAnnotationType", nonnullAnnotationType);
|
||||
builder.append("nullableAnnotation", nullableAnnotation);
|
||||
builder.append("nullableAnnotationType", nullableAnnotationType);
|
||||
builder.append("constructorPropertiesAnnotation", constructorPropertiesAnnotation);
|
||||
builder.append("constructorPropertiesAnnotationOnPojos", constructorPropertiesAnnotationOnPojos);
|
||||
builder.append("constructorPropertiesAnnotationOnRecords", constructorPropertiesAnnotationOnRecords);
|
||||
builder.append("routines", routines);
|
||||
builder.append("sequences", sequences);
|
||||
builder.append("udts", udts);
|
||||
@ -2559,6 +2653,33 @@ public class Generate implements Serializable, XMLAppendable
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (constructorPropertiesAnnotation == null) {
|
||||
if (other.constructorPropertiesAnnotation!= null) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
if (!constructorPropertiesAnnotation.equals(other.constructorPropertiesAnnotation)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (constructorPropertiesAnnotationOnPojos == null) {
|
||||
if (other.constructorPropertiesAnnotationOnPojos!= null) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
if (!constructorPropertiesAnnotationOnPojos.equals(other.constructorPropertiesAnnotationOnPojos)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (constructorPropertiesAnnotationOnRecords == null) {
|
||||
if (other.constructorPropertiesAnnotationOnRecords!= null) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
if (!constructorPropertiesAnnotationOnRecords.equals(other.constructorPropertiesAnnotationOnRecords)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (routines == null) {
|
||||
if (other.routines!= null) {
|
||||
return false;
|
||||
@ -3128,6 +3249,9 @@ public class Generate implements Serializable, XMLAppendable
|
||||
result = ((prime*result)+((nonnullAnnotationType == null)? 0 :nonnullAnnotationType.hashCode()));
|
||||
result = ((prime*result)+((nullableAnnotation == null)? 0 :nullableAnnotation.hashCode()));
|
||||
result = ((prime*result)+((nullableAnnotationType == null)? 0 :nullableAnnotationType.hashCode()));
|
||||
result = ((prime*result)+((constructorPropertiesAnnotation == null)? 0 :constructorPropertiesAnnotation.hashCode()));
|
||||
result = ((prime*result)+((constructorPropertiesAnnotationOnPojos == null)? 0 :constructorPropertiesAnnotationOnPojos.hashCode()));
|
||||
result = ((prime*result)+((constructorPropertiesAnnotationOnRecords == null)? 0 :constructorPropertiesAnnotationOnRecords.hashCode()));
|
||||
result = ((prime*result)+((routines == null)? 0 :routines.hashCode()));
|
||||
result = ((prime*result)+((sequences == null)? 0 :sequences.hashCode()));
|
||||
result = ((prime*result)+((udts == null)? 0 :udts.hashCode()));
|
||||
|
||||
@ -28,7 +28,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class Generator implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlElement(defaultValue = "org.jooq.codegen.DefaultGenerator")
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String name = "org.jooq.codegen.DefaultGenerator";
|
||||
|
||||
@ -32,7 +32,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class Jdbc implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String driver;
|
||||
@XmlElement(required = true)
|
||||
|
||||
@ -43,7 +43,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class MatcherRule implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlSchemaType(name = "string")
|
||||
protected MatcherTransformType transform;
|
||||
@XmlElement(required = true)
|
||||
|
||||
@ -35,7 +35,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class Matchers implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlElementWrapper(name = "schemas")
|
||||
@XmlElement(name = "schema")
|
||||
protected List<MatchersSchemaType> schemas;
|
||||
|
||||
@ -27,7 +27,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class MatchersEnumType implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String expression;
|
||||
protected MatcherRule enumClass;
|
||||
|
||||
@ -27,7 +27,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class MatchersFieldType implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String expression;
|
||||
protected MatcherRule fieldIdentifier;
|
||||
|
||||
@ -27,7 +27,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class MatchersRoutineType implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String expression;
|
||||
protected MatcherRule routineClass;
|
||||
|
||||
@ -27,7 +27,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class MatchersSchemaType implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String expression;
|
||||
protected MatcherRule schemaClass;
|
||||
|
||||
@ -27,7 +27,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class MatchersSequenceType implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String expression;
|
||||
protected MatcherRule sequenceIdentifier;
|
||||
|
||||
@ -27,7 +27,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class MatchersTableType implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String expression;
|
||||
protected MatcherRule tableClass;
|
||||
|
||||
@ -29,7 +29,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class Property implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlElement(required = true)
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String key;
|
||||
|
||||
@ -28,7 +28,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class SchemaMappingType implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlElement(required = true, defaultValue = "")
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String inputSchema = "";
|
||||
|
||||
@ -29,7 +29,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class Strategy implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlElement(defaultValue = "org.jooq.codegen.DefaultGeneratorStrategy")
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String name = "org.jooq.codegen.DefaultGeneratorStrategy";
|
||||
|
||||
@ -28,7 +28,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
|
||||
public class Target implements Serializable, XMLAppendable
|
||||
{
|
||||
|
||||
private final static long serialVersionUID = 31200L;
|
||||
private final static long serialVersionUID = 31400L;
|
||||
@XmlElement(defaultValue = "org.jooq.generated")
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String packageName = "org.jooq.generated";
|
||||
|
||||
@ -1155,6 +1155,18 @@ jOOQ version used for source code.]]></jxb:javadoc></jxb:property></appinfo></an
|
||||
<element name="nullableAnnotationType" type="string" default="javax.annotation.Nullable" minOccurs="0" maxOccurs="1">
|
||||
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Specify the qualified annotation name for all nullable items in generated code, defaulting to the JSR-305 {@link javax.annotation.Nullable} type.]]></jxb:javadoc></jxb:property></appinfo></annotation>
|
||||
</element>
|
||||
|
||||
<element name="constructorPropertiesAnnotation" type="boolean" default="false" minOccurs="0" maxOccurs="1">
|
||||
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Generate the {@link java.beans.ConstructorProperties} annotation on generated POJOs and/or records.]]></jxb:javadoc></jxb:property></appinfo></annotation>
|
||||
</element>
|
||||
|
||||
<element name="constructorPropertiesAnnotationOnPojos" type="boolean" minOccurs="0" maxOccurs="1">
|
||||
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Generate the {@link java.beans.ConstructorProperties} annotation on generated POJOs (defaults to <code>true</code> if {@link #constructorPropertiesAnnotation} is active).]]></jxb:javadoc></jxb:property></appinfo></annotation>
|
||||
</element>
|
||||
|
||||
<element name="constructorPropertiesAnnotationOnRecords" type="boolean" minOccurs="0" maxOccurs="1">
|
||||
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Generate the {@link java.beans.ConstructorProperties} annotation on generated records (defaults to <code>true</code> if {@link #constructorPropertiesAnnotation} is active).]]></jxb:javadoc></jxb:property></appinfo></annotation>
|
||||
</element>
|
||||
|
||||
<element name="routines" type="boolean" default="true" minOccurs="0" maxOccurs="1">
|
||||
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Generate Routine classes.]]></jxb:javadoc></jxb:property></appinfo></annotation>
|
||||
Loading…
Reference in New Issue
Block a user