[jOOQ/jOOQ#16093] Add matcher strategies for method overrides

This commit is contained in:
Lukas Eder 2024-01-17 14:00:02 +01:00
parent eb64cf976d
commit 98ff868302
15 changed files with 1050 additions and 21 deletions

View File

@ -140,7 +140,7 @@ public final class Constants {
/**
* The current jooq-codegen XSD file name.
*/
public static final String XSD_CODEGEN = "jooq-codegen-3.19.2.xsd";
public static final String XSD_CODEGEN = "jooq-codegen-3.20.0.xsd";
/**
* The current jooq-codegen XML namespace.

View File

@ -37,11 +37,14 @@
*/
package org.jooq.codegen;
import static java.lang.Boolean.TRUE;
import static java.util.Collections.emptyList;
import static java.util.stream.Collectors.toList;
import static org.jooq.tools.StringUtils.defaultIfEmpty;
import java.util.List;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Stream;
@ -94,6 +97,25 @@ public class MatcherStrategy extends DefaultGeneratorStrategy {
return patterns;
}
/**
* Take a {@link Definition}, try to match its name or qualified name
* against an expression.
*/
private final boolean match(Definition definition, String expression) {
return match(definition.getName(), expression)
|| match(definition.getQualifiedName(), expression);
}
private final boolean match(String name, String expression) {
return matcher(name, expression) != null;
}
private final Matcher matcher(String name, String expression) {
Pattern p = patterns.pattern(defaultIfEmpty(expression, "^.*$").trim());
Matcher m = p.matcher(name);
return m.matches() ? m : null;
}
/**
* Take a {@link Definition}, try to match its name or qualified name
* against an expression, and apply a rule upon match.
@ -105,6 +127,10 @@ public class MatcherStrategy extends DefaultGeneratorStrategy {
return null;
}
/**
* Take a {@link Definition}, try to match its name or qualified name
* against an expression, and apply a rule upon match.
*/
private final String match(String name, String expression, MatcherRule rule) {
if (rule != null)
return match(name, expression, rule.getExpression(), rule.getTransform());
@ -133,10 +159,9 @@ public class MatcherStrategy extends DefaultGeneratorStrategy {
ruleExpression = "$0";
if (ruleExpression != null) {
Pattern p = patterns.pattern(defaultIfEmpty(expression, "^.*$").trim());
Matcher m = p.matcher(name);
Matcher m = matcher(name, expression);
if (m.matches())
if (m != null)
return transform(m.replaceAll(ruleExpression), ruleTransformType);
}
@ -382,6 +407,32 @@ public class MatcherStrategy extends DefaultGeneratorStrategy {
return super.getJavaSetterName(definition, mode);
}
@Override
public boolean getJavaSetterOverride(Definition definition, Mode mode) {
switch (mode) {
case RECORD:
return getJavaOverride0(definition,
MatchersFieldType::isRecordSetterOverride,
MatchersAttributeType::isRecordSetterOverride,
() -> super.getJavaMemberOverride(definition, mode)
);
case INTERFACE:
return getJavaOverride0(definition,
MatchersFieldType::isInterfaceSetterOverride,
MatchersAttributeType::isInterfaceSetterOverride,
() -> super.getJavaMemberOverride(definition, mode)
);
case POJO:
return getJavaOverride0(definition,
MatchersFieldType::isPojoSetterOverride,
MatchersAttributeType::isPojoSetterOverride,
() -> super.getJavaMemberOverride(definition, mode)
);
}
return super.getJavaMemberOverride(definition, mode);
}
@Override
public String getJavaGetterName(Definition definition, Mode mode) {
for (MatchersFieldType fields : fields(definition)) {
@ -400,6 +451,32 @@ public class MatcherStrategy extends DefaultGeneratorStrategy {
return super.getJavaGetterName(definition, mode);
}
@Override
public boolean getJavaGetterOverride(Definition definition, Mode mode) {
switch (mode) {
case RECORD:
return getJavaOverride0(definition,
MatchersFieldType::isRecordGetterOverride,
MatchersAttributeType::isRecordGetterOverride,
() -> super.getJavaMemberOverride(definition, mode)
);
case INTERFACE:
return getJavaOverride0(definition,
MatchersFieldType::isInterfaceGetterOverride,
MatchersAttributeType::isInterfaceGetterOverride,
() -> super.getJavaMemberOverride(definition, mode)
);
case POJO:
return getJavaOverride0(definition,
MatchersFieldType::isPojoGetterOverride,
MatchersAttributeType::isPojoGetterOverride,
() -> super.getJavaMemberOverride(definition, mode)
);
}
return super.getJavaMemberOverride(definition, mode);
}
@Override
public String getJavaMethodName(Definition definition, Mode mode) {
for (MatchersRoutineType routines : routines(definition)) {
@ -716,6 +793,56 @@ public class MatcherStrategy extends DefaultGeneratorStrategy {
return super.getJavaMemberName(definition, mode);
}
private boolean getJavaOverride0(
Definition definition,
Function<? super MatchersFieldType, ? extends Boolean> isFieldOverride,
Function<? super MatchersAttributeType, ? extends Boolean> isAttributeOverride,
Supplier<? extends Boolean> defaultOverride
) {
for (MatchersFieldType field : fields(definition)) {
if (match(definition, field.getExpression())) {
if (TRUE.equals(isFieldOverride.apply(field)))
return true;
}
}
for (MatchersAttributeType attribute : attributes(definition)) {
if (match(definition, attribute.getExpression())) {
if (TRUE.equals(isAttributeOverride.apply(attribute)))
return true;
}
}
// Default to standard behaviour
return defaultOverride.get();
}
@Override
public boolean getJavaMemberOverride(Definition definition, Mode mode) {
switch (mode) {
case RECORD:
return getJavaOverride0(definition,
MatchersFieldType::isRecordMemberOverride,
MatchersAttributeType::isRecordMemberOverride,
() -> super.getJavaMemberOverride(definition, mode)
);
case INTERFACE:
return getJavaOverride0(definition,
MatchersFieldType::isInterfaceMemberOverride,
MatchersAttributeType::isInterfaceMemberOverride,
() -> super.getJavaMemberOverride(definition, mode)
);
case POJO:
return getJavaOverride0(definition,
MatchersFieldType::isPojoMemberOverride,
MatchersAttributeType::isPojoMemberOverride,
() -> super.getJavaMemberOverride(definition, mode)
);
}
return super.getJavaMemberOverride(definition, mode);
}
@Override
public String getOverloadSuffix(Definition definition, Mode mode, String overloadIndex) {
return super.getOverloadSuffix(definition, mode, overloadIndex);

View File

@ -140,7 +140,7 @@ public final class Constants {
/**
* The current jooq-codegen XSD file name.
*/
public static final String XSD_CODEGEN = "jooq-codegen-3.19.2.xsd";
public static final String XSD_CODEGEN = "jooq-codegen-3.20.0.xsd";
/**
* The current jooq-codegen XML namespace.

View File

@ -24,11 +24,11 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
* &lt;complexContent&gt;
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
* &lt;all&gt;
* &lt;element name="logging" type="{http://www.jooq.org/xsd/jooq-codegen-3.19.2.xsd}Logging" minOccurs="0"/&gt;
* &lt;element name="onError" type="{http://www.jooq.org/xsd/jooq-codegen-3.19.2.xsd}OnError" minOccurs="0"/&gt;
* &lt;element name="onUnused" type="{http://www.jooq.org/xsd/jooq-codegen-3.19.2.xsd}OnError" minOccurs="0"/&gt;
* &lt;element name="jdbc" type="{http://www.jooq.org/xsd/jooq-codegen-3.19.2.xsd}Jdbc" minOccurs="0"/&gt;
* &lt;element name="generator" type="{http://www.jooq.org/xsd/jooq-codegen-3.19.2.xsd}Generator"/&gt;
* &lt;element name="logging" type="{http://www.jooq.org/xsd/jooq-codegen-3.20.0.xsd}Logging" minOccurs="0"/&gt;
* &lt;element name="onError" type="{http://www.jooq.org/xsd/jooq-codegen-3.20.0.xsd}OnError" minOccurs="0"/&gt;
* &lt;element name="onUnused" type="{http://www.jooq.org/xsd/jooq-codegen-3.20.0.xsd}OnError" minOccurs="0"/&gt;
* &lt;element name="jdbc" type="{http://www.jooq.org/xsd/jooq-codegen-3.20.0.xsd}Jdbc" minOccurs="0"/&gt;
* &lt;element name="generator" type="{http://www.jooq.org/xsd/jooq-codegen-3.20.0.xsd}Generator"/&gt;
* &lt;element name="basedir" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;/all&gt;
* &lt;/restriction&gt;

View File

@ -23,7 +23,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
* &lt;complexContent&gt;
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
* &lt;all&gt;
* &lt;element name="transform" type="{http://www.jooq.org/xsd/jooq-codegen-3.19.2.xsd}MatcherTransformType" minOccurs="0"/&gt;
* &lt;element name="transform" type="{http://www.jooq.org/xsd/jooq-codegen-3.20.0.xsd}MatcherTransformType" minOccurs="0"/&gt;
* &lt;element name="expression" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
* &lt;/all&gt;
* &lt;/restriction&gt;

View File

@ -4,6 +4,7 @@ package org.jooq.meta.jaxb;
import java.io.Serializable;
import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlType;
import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.jooq.util.jaxb.tools.StringAdapter;
@ -34,6 +35,24 @@ public class MatchersAttributeType implements Serializable, XMLAppendable
protected MatcherRule attributeMember;
protected MatcherRule attributeSetter;
protected MatcherRule attributeGetter;
@XmlElement(defaultValue = "false")
protected Boolean recordSetterOverride = false;
@XmlElement(defaultValue = "false")
protected Boolean recordGetterOverride = false;
@XmlElement(defaultValue = "false")
protected Boolean recordMemberOverride = false;
@XmlElement(defaultValue = "false")
protected Boolean interfaceSetterOverride = false;
@XmlElement(defaultValue = "false")
protected Boolean interfaceGetterOverride = false;
@XmlElement(defaultValue = "false")
protected Boolean interfaceMemberOverride = false;
@XmlElement(defaultValue = "false")
protected Boolean pojoSetterOverride = false;
@XmlElement(defaultValue = "false")
protected Boolean pojoGetterOverride = false;
@XmlElement(defaultValue = "false")
protected Boolean pojoMemberOverride = false;
/**
* This field matcher applies to all unqualified or qualified UDT attribute names matched by this expression. If left empty, this matcher applies to all fields.
@ -115,6 +134,222 @@ public class MatchersAttributeType implements Serializable, XMLAppendable
this.attributeGetter = value;
}
/**
* Whether an "override" modifier in generated record setters should be generated.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isRecordSetterOverride() {
return recordSetterOverride;
}
/**
* Whether an "override" modifier in generated record setters should be generated.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setRecordSetterOverride(Boolean value) {
this.recordSetterOverride = value;
}
/**
* Whether an "override" modifier in generated record getters should be generated.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isRecordGetterOverride() {
return recordGetterOverride;
}
/**
* Whether an "override" modifier in generated record getters should be generated.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setRecordGetterOverride(Boolean value) {
this.recordGetterOverride = value;
}
/**
* Whether an "override" modifier in generated record members (properties) should be generated.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isRecordMemberOverride() {
return recordMemberOverride;
}
/**
* Whether an "override" modifier in generated record members (properties) should be generated.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setRecordMemberOverride(Boolean value) {
this.recordMemberOverride = value;
}
/**
* Whether an "override" modifier in generated interface setters should be generated.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isInterfaceSetterOverride() {
return interfaceSetterOverride;
}
/**
* Whether an "override" modifier in generated interface setters should be generated.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setInterfaceSetterOverride(Boolean value) {
this.interfaceSetterOverride = value;
}
/**
* Whether an "override" modifier in generated interface getters should be generated.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isInterfaceGetterOverride() {
return interfaceGetterOverride;
}
/**
* Whether an "override" modifier in generated interface getters should be generated.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setInterfaceGetterOverride(Boolean value) {
this.interfaceGetterOverride = value;
}
/**
* Whether an "override" modifier in generated interface members (properties) should be generated.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isInterfaceMemberOverride() {
return interfaceMemberOverride;
}
/**
* Whether an "override" modifier in generated interface members (properties) should be generated.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setInterfaceMemberOverride(Boolean value) {
this.interfaceMemberOverride = value;
}
/**
* Whether an "override" modifier in generated POJO setters should be generated.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isPojoSetterOverride() {
return pojoSetterOverride;
}
/**
* Whether an "override" modifier in generated POJO setters should be generated.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setPojoSetterOverride(Boolean value) {
this.pojoSetterOverride = value;
}
/**
* Whether an "override" modifier in generated POJO getters should be generated.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isPojoGetterOverride() {
return pojoGetterOverride;
}
/**
* Whether an "override" modifier in generated POJO getters should be generated.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setPojoGetterOverride(Boolean value) {
this.pojoGetterOverride = value;
}
/**
* Whether an "override" modifier in generated POJO members (properties) should be generated.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isPojoMemberOverride() {
return pojoMemberOverride;
}
/**
* Whether an "override" modifier in generated POJO members (properties) should be generated.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setPojoMemberOverride(Boolean value) {
this.pojoMemberOverride = value;
}
/**
* This field matcher applies to all unqualified or qualified UDT attribute names matched by this expression. If left empty, this matcher applies to all fields.
*
@ -160,6 +395,87 @@ public class MatchersAttributeType implements Serializable, XMLAppendable
return this;
}
/**
* Whether an "override" modifier in generated record setters should be generated.
*
*/
public MatchersAttributeType withRecordSetterOverride(Boolean value) {
setRecordSetterOverride(value);
return this;
}
/**
* Whether an "override" modifier in generated record getters should be generated.
*
*/
public MatchersAttributeType withRecordGetterOverride(Boolean value) {
setRecordGetterOverride(value);
return this;
}
/**
* Whether an "override" modifier in generated record members (properties) should be generated.
*
*/
public MatchersAttributeType withRecordMemberOverride(Boolean value) {
setRecordMemberOverride(value);
return this;
}
/**
* Whether an "override" modifier in generated interface setters should be generated.
*
*/
public MatchersAttributeType withInterfaceSetterOverride(Boolean value) {
setInterfaceSetterOverride(value);
return this;
}
/**
* Whether an "override" modifier in generated interface getters should be generated.
*
*/
public MatchersAttributeType withInterfaceGetterOverride(Boolean value) {
setInterfaceGetterOverride(value);
return this;
}
/**
* Whether an "override" modifier in generated interface members (properties) should be generated.
*
*/
public MatchersAttributeType withInterfaceMemberOverride(Boolean value) {
setInterfaceMemberOverride(value);
return this;
}
/**
* Whether an "override" modifier in generated POJO setters should be generated.
*
*/
public MatchersAttributeType withPojoSetterOverride(Boolean value) {
setPojoSetterOverride(value);
return this;
}
/**
* Whether an "override" modifier in generated POJO getters should be generated.
*
*/
public MatchersAttributeType withPojoGetterOverride(Boolean value) {
setPojoGetterOverride(value);
return this;
}
/**
* Whether an "override" modifier in generated POJO members (properties) should be generated.
*
*/
public MatchersAttributeType withPojoMemberOverride(Boolean value) {
setPojoMemberOverride(value);
return this;
}
@Override
public final void appendTo(XMLBuilder builder) {
builder.append("expression", expression);
@ -167,6 +483,15 @@ public class MatchersAttributeType implements Serializable, XMLAppendable
builder.append("attributeMember", attributeMember);
builder.append("attributeSetter", attributeSetter);
builder.append("attributeGetter", attributeGetter);
builder.append("recordSetterOverride", recordSetterOverride);
builder.append("recordGetterOverride", recordGetterOverride);
builder.append("recordMemberOverride", recordMemberOverride);
builder.append("interfaceSetterOverride", interfaceSetterOverride);
builder.append("interfaceGetterOverride", interfaceGetterOverride);
builder.append("interfaceMemberOverride", interfaceMemberOverride);
builder.append("pojoSetterOverride", pojoSetterOverride);
builder.append("pojoGetterOverride", pojoGetterOverride);
builder.append("pojoMemberOverride", pojoMemberOverride);
}
@Override
@ -233,6 +558,87 @@ public class MatchersAttributeType implements Serializable, XMLAppendable
return false;
}
}
if (recordSetterOverride == null) {
if (other.recordSetterOverride!= null) {
return false;
}
} else {
if (!recordSetterOverride.equals(other.recordSetterOverride)) {
return false;
}
}
if (recordGetterOverride == null) {
if (other.recordGetterOverride!= null) {
return false;
}
} else {
if (!recordGetterOverride.equals(other.recordGetterOverride)) {
return false;
}
}
if (recordMemberOverride == null) {
if (other.recordMemberOverride!= null) {
return false;
}
} else {
if (!recordMemberOverride.equals(other.recordMemberOverride)) {
return false;
}
}
if (interfaceSetterOverride == null) {
if (other.interfaceSetterOverride!= null) {
return false;
}
} else {
if (!interfaceSetterOverride.equals(other.interfaceSetterOverride)) {
return false;
}
}
if (interfaceGetterOverride == null) {
if (other.interfaceGetterOverride!= null) {
return false;
}
} else {
if (!interfaceGetterOverride.equals(other.interfaceGetterOverride)) {
return false;
}
}
if (interfaceMemberOverride == null) {
if (other.interfaceMemberOverride!= null) {
return false;
}
} else {
if (!interfaceMemberOverride.equals(other.interfaceMemberOverride)) {
return false;
}
}
if (pojoSetterOverride == null) {
if (other.pojoSetterOverride!= null) {
return false;
}
} else {
if (!pojoSetterOverride.equals(other.pojoSetterOverride)) {
return false;
}
}
if (pojoGetterOverride == null) {
if (other.pojoGetterOverride!= null) {
return false;
}
} else {
if (!pojoGetterOverride.equals(other.pojoGetterOverride)) {
return false;
}
}
if (pojoMemberOverride == null) {
if (other.pojoMemberOverride!= null) {
return false;
}
} else {
if (!pojoMemberOverride.equals(other.pojoMemberOverride)) {
return false;
}
}
return true;
}
@ -245,6 +651,15 @@ public class MatchersAttributeType implements Serializable, XMLAppendable
result = ((prime*result)+((attributeMember == null)? 0 :attributeMember.hashCode()));
result = ((prime*result)+((attributeSetter == null)? 0 :attributeSetter.hashCode()));
result = ((prime*result)+((attributeGetter == null)? 0 :attributeGetter.hashCode()));
result = ((prime*result)+((recordSetterOverride == null)? 0 :recordSetterOverride.hashCode()));
result = ((prime*result)+((recordGetterOverride == null)? 0 :recordGetterOverride.hashCode()));
result = ((prime*result)+((recordMemberOverride == null)? 0 :recordMemberOverride.hashCode()));
result = ((prime*result)+((interfaceSetterOverride == null)? 0 :interfaceSetterOverride.hashCode()));
result = ((prime*result)+((interfaceGetterOverride == null)? 0 :interfaceGetterOverride.hashCode()));
result = ((prime*result)+((interfaceMemberOverride == null)? 0 :interfaceMemberOverride.hashCode()));
result = ((prime*result)+((pojoSetterOverride == null)? 0 :pojoSetterOverride.hashCode()));
result = ((prime*result)+((pojoGetterOverride == null)? 0 :pojoGetterOverride.hashCode()));
result = ((prime*result)+((pojoMemberOverride == null)? 0 :pojoMemberOverride.hashCode()));
return result;
}

View File

@ -4,6 +4,7 @@ package org.jooq.meta.jaxb;
import java.io.Serializable;
import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlType;
import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.jooq.util.jaxb.tools.StringAdapter;
@ -34,6 +35,24 @@ public class MatchersFieldType implements Serializable, XMLAppendable
protected MatcherRule fieldMember;
protected MatcherRule fieldSetter;
protected MatcherRule fieldGetter;
@XmlElement(defaultValue = "false")
protected Boolean recordSetterOverride = false;
@XmlElement(defaultValue = "false")
protected Boolean recordGetterOverride = false;
@XmlElement(defaultValue = "false")
protected Boolean recordMemberOverride = false;
@XmlElement(defaultValue = "false")
protected Boolean interfaceSetterOverride = false;
@XmlElement(defaultValue = "false")
protected Boolean interfaceGetterOverride = false;
@XmlElement(defaultValue = "false")
protected Boolean interfaceMemberOverride = false;
@XmlElement(defaultValue = "false")
protected Boolean pojoSetterOverride = false;
@XmlElement(defaultValue = "false")
protected Boolean pojoGetterOverride = false;
@XmlElement(defaultValue = "false")
protected Boolean pojoMemberOverride = false;
/**
* This field matcher applies to all unqualified or qualified field names matched by this expression. If left empty, this matcher applies to all fields.
@ -115,6 +134,222 @@ public class MatchersFieldType implements Serializable, XMLAppendable
this.fieldGetter = value;
}
/**
* Whether an "override" modifier in generated record setters should be generated.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isRecordSetterOverride() {
return recordSetterOverride;
}
/**
* Whether an "override" modifier in generated record setters should be generated.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setRecordSetterOverride(Boolean value) {
this.recordSetterOverride = value;
}
/**
* Whether an "override" modifier in generated record getters should be generated.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isRecordGetterOverride() {
return recordGetterOverride;
}
/**
* Whether an "override" modifier in generated record getters should be generated.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setRecordGetterOverride(Boolean value) {
this.recordGetterOverride = value;
}
/**
* Whether an "override" modifier in generated record members (properties) should be generated.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isRecordMemberOverride() {
return recordMemberOverride;
}
/**
* Whether an "override" modifier in generated record members (properties) should be generated.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setRecordMemberOverride(Boolean value) {
this.recordMemberOverride = value;
}
/**
* Whether an "override" modifier in generated interface setters should be generated.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isInterfaceSetterOverride() {
return interfaceSetterOverride;
}
/**
* Whether an "override" modifier in generated interface setters should be generated.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setInterfaceSetterOverride(Boolean value) {
this.interfaceSetterOverride = value;
}
/**
* Whether an "override" modifier in generated interface getters should be generated.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isInterfaceGetterOverride() {
return interfaceGetterOverride;
}
/**
* Whether an "override" modifier in generated interface getters should be generated.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setInterfaceGetterOverride(Boolean value) {
this.interfaceGetterOverride = value;
}
/**
* Whether an "override" modifier in generated interface members (properties) should be generated.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isInterfaceMemberOverride() {
return interfaceMemberOverride;
}
/**
* Whether an "override" modifier in generated interface members (properties) should be generated.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setInterfaceMemberOverride(Boolean value) {
this.interfaceMemberOverride = value;
}
/**
* Whether an "override" modifier in generated POJO setters should be generated.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isPojoSetterOverride() {
return pojoSetterOverride;
}
/**
* Whether an "override" modifier in generated POJO setters should be generated.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setPojoSetterOverride(Boolean value) {
this.pojoSetterOverride = value;
}
/**
* Whether an "override" modifier in generated POJO getters should be generated.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isPojoGetterOverride() {
return pojoGetterOverride;
}
/**
* Whether an "override" modifier in generated POJO getters should be generated.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setPojoGetterOverride(Boolean value) {
this.pojoGetterOverride = value;
}
/**
* Whether an "override" modifier in generated POJO members (properties) should be generated.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isPojoMemberOverride() {
return pojoMemberOverride;
}
/**
* Whether an "override" modifier in generated POJO members (properties) should be generated.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setPojoMemberOverride(Boolean value) {
this.pojoMemberOverride = value;
}
/**
* This field matcher applies to all unqualified or qualified field names matched by this expression. If left empty, this matcher applies to all fields.
*
@ -160,6 +395,87 @@ public class MatchersFieldType implements Serializable, XMLAppendable
return this;
}
/**
* Whether an "override" modifier in generated record setters should be generated.
*
*/
public MatchersFieldType withRecordSetterOverride(Boolean value) {
setRecordSetterOverride(value);
return this;
}
/**
* Whether an "override" modifier in generated record getters should be generated.
*
*/
public MatchersFieldType withRecordGetterOverride(Boolean value) {
setRecordGetterOverride(value);
return this;
}
/**
* Whether an "override" modifier in generated record members (properties) should be generated.
*
*/
public MatchersFieldType withRecordMemberOverride(Boolean value) {
setRecordMemberOverride(value);
return this;
}
/**
* Whether an "override" modifier in generated interface setters should be generated.
*
*/
public MatchersFieldType withInterfaceSetterOverride(Boolean value) {
setInterfaceSetterOverride(value);
return this;
}
/**
* Whether an "override" modifier in generated interface getters should be generated.
*
*/
public MatchersFieldType withInterfaceGetterOverride(Boolean value) {
setInterfaceGetterOverride(value);
return this;
}
/**
* Whether an "override" modifier in generated interface members (properties) should be generated.
*
*/
public MatchersFieldType withInterfaceMemberOverride(Boolean value) {
setInterfaceMemberOverride(value);
return this;
}
/**
* Whether an "override" modifier in generated POJO setters should be generated.
*
*/
public MatchersFieldType withPojoSetterOverride(Boolean value) {
setPojoSetterOverride(value);
return this;
}
/**
* Whether an "override" modifier in generated POJO getters should be generated.
*
*/
public MatchersFieldType withPojoGetterOverride(Boolean value) {
setPojoGetterOverride(value);
return this;
}
/**
* Whether an "override" modifier in generated POJO members (properties) should be generated.
*
*/
public MatchersFieldType withPojoMemberOverride(Boolean value) {
setPojoMemberOverride(value);
return this;
}
@Override
public final void appendTo(XMLBuilder builder) {
builder.append("expression", expression);
@ -167,6 +483,15 @@ public class MatchersFieldType implements Serializable, XMLAppendable
builder.append("fieldMember", fieldMember);
builder.append("fieldSetter", fieldSetter);
builder.append("fieldGetter", fieldGetter);
builder.append("recordSetterOverride", recordSetterOverride);
builder.append("recordGetterOverride", recordGetterOverride);
builder.append("recordMemberOverride", recordMemberOverride);
builder.append("interfaceSetterOverride", interfaceSetterOverride);
builder.append("interfaceGetterOverride", interfaceGetterOverride);
builder.append("interfaceMemberOverride", interfaceMemberOverride);
builder.append("pojoSetterOverride", pojoSetterOverride);
builder.append("pojoGetterOverride", pojoGetterOverride);
builder.append("pojoMemberOverride", pojoMemberOverride);
}
@Override
@ -233,6 +558,87 @@ public class MatchersFieldType implements Serializable, XMLAppendable
return false;
}
}
if (recordSetterOverride == null) {
if (other.recordSetterOverride!= null) {
return false;
}
} else {
if (!recordSetterOverride.equals(other.recordSetterOverride)) {
return false;
}
}
if (recordGetterOverride == null) {
if (other.recordGetterOverride!= null) {
return false;
}
} else {
if (!recordGetterOverride.equals(other.recordGetterOverride)) {
return false;
}
}
if (recordMemberOverride == null) {
if (other.recordMemberOverride!= null) {
return false;
}
} else {
if (!recordMemberOverride.equals(other.recordMemberOverride)) {
return false;
}
}
if (interfaceSetterOverride == null) {
if (other.interfaceSetterOverride!= null) {
return false;
}
} else {
if (!interfaceSetterOverride.equals(other.interfaceSetterOverride)) {
return false;
}
}
if (interfaceGetterOverride == null) {
if (other.interfaceGetterOverride!= null) {
return false;
}
} else {
if (!interfaceGetterOverride.equals(other.interfaceGetterOverride)) {
return false;
}
}
if (interfaceMemberOverride == null) {
if (other.interfaceMemberOverride!= null) {
return false;
}
} else {
if (!interfaceMemberOverride.equals(other.interfaceMemberOverride)) {
return false;
}
}
if (pojoSetterOverride == null) {
if (other.pojoSetterOverride!= null) {
return false;
}
} else {
if (!pojoSetterOverride.equals(other.pojoSetterOverride)) {
return false;
}
}
if (pojoGetterOverride == null) {
if (other.pojoGetterOverride!= null) {
return false;
}
} else {
if (!pojoGetterOverride.equals(other.pojoGetterOverride)) {
return false;
}
}
if (pojoMemberOverride == null) {
if (other.pojoMemberOverride!= null) {
return false;
}
} else {
if (!pojoMemberOverride.equals(other.pojoMemberOverride)) {
return false;
}
}
return true;
}
@ -245,6 +651,15 @@ public class MatchersFieldType implements Serializable, XMLAppendable
result = ((prime*result)+((fieldMember == null)? 0 :fieldMember.hashCode()));
result = ((prime*result)+((fieldSetter == null)? 0 :fieldSetter.hashCode()));
result = ((prime*result)+((fieldGetter == null)? 0 :fieldGetter.hashCode()));
result = ((prime*result)+((recordSetterOverride == null)? 0 :recordSetterOverride.hashCode()));
result = ((prime*result)+((recordGetterOverride == null)? 0 :recordGetterOverride.hashCode()));
result = ((prime*result)+((recordMemberOverride == null)? 0 :recordMemberOverride.hashCode()));
result = ((prime*result)+((interfaceSetterOverride == null)? 0 :interfaceSetterOverride.hashCode()));
result = ((prime*result)+((interfaceGetterOverride == null)? 0 :interfaceGetterOverride.hashCode()));
result = ((prime*result)+((interfaceMemberOverride == null)? 0 :interfaceMemberOverride.hashCode()));
result = ((prime*result)+((pojoSetterOverride == null)? 0 :pojoSetterOverride.hashCode()));
result = ((prime*result)+((pojoGetterOverride == null)? 0 :pojoGetterOverride.hashCode()));
result = ((prime*result)+((pojoMemberOverride == null)? 0 :pojoMemberOverride.hashCode()));
return result;
}

View File

@ -30,7 +30,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
* &lt;element name="schema" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
* &lt;element name="comment" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="methods" type="{http://www.jooq.org/xsd/jooq-codegen-3.19.2.xsd}SyntheticDaoMethodsType" minOccurs="0"/&gt;
* &lt;element name="methods" type="{http://www.jooq.org/xsd/jooq-codegen-3.20.0.xsd}SyntheticDaoMethodsType" minOccurs="0"/&gt;
* &lt;/all&gt;
* &lt;/restriction&gt;
* &lt;/complexContent&gt;

View File

@ -29,7 +29,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
* &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="tables" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="fields" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="literals" type="{http://www.jooq.org/xsd/jooq-codegen-3.19.2.xsd}SyntheticEnumLiteralsType" minOccurs="0"/&gt;
* &lt;element name="literals" type="{http://www.jooq.org/xsd/jooq-codegen-3.20.0.xsd}SyntheticEnumLiteralsType" minOccurs="0"/&gt;
* &lt;element name="literalSql" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="literalsFromColumnContent" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt;
* &lt;element name="literalsFromCheckConstraints" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt;

View File

@ -28,9 +28,9 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
* &lt;all&gt;
* &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="tables" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="fields" type="{http://www.jooq.org/xsd/jooq-codegen-3.19.2.xsd}SyntheticKeyFieldsType"/&gt;
* &lt;element name="fields" type="{http://www.jooq.org/xsd/jooq-codegen-3.20.0.xsd}SyntheticKeyFieldsType"/&gt;
* &lt;element name="referencedTable" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
* &lt;element name="referencedFields" type="{http://www.jooq.org/xsd/jooq-codegen-3.19.2.xsd}SyntheticKeyFieldsType" minOccurs="0"/&gt;
* &lt;element name="referencedFields" type="{http://www.jooq.org/xsd/jooq-codegen-3.20.0.xsd}SyntheticKeyFieldsType" minOccurs="0"/&gt;
* &lt;element name="referencedKey" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;/all&gt;
* &lt;/restriction&gt;

View File

@ -28,7 +28,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
* &lt;all&gt;
* &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="tables" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="fields" type="{http://www.jooq.org/xsd/jooq-codegen-3.19.2.xsd}SyntheticKeyFieldsType"/&gt;
* &lt;element name="fields" type="{http://www.jooq.org/xsd/jooq-codegen-3.20.0.xsd}SyntheticKeyFieldsType"/&gt;
* &lt;element name="key" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;/all&gt;
* &lt;/restriction&gt;

View File

@ -28,7 +28,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
* &lt;all&gt;
* &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="tables" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="fields" type="{http://www.jooq.org/xsd/jooq-codegen-3.19.2.xsd}SyntheticKeyFieldsType"/&gt;
* &lt;element name="fields" type="{http://www.jooq.org/xsd/jooq-codegen-3.20.0.xsd}SyntheticKeyFieldsType"/&gt;
* &lt;/all&gt;
* &lt;/restriction&gt;
* &lt;/complexContent&gt;

View File

@ -1,2 +1,2 @@
@jakarta.xml.bind.annotation.XmlSchema(namespace = "http://www.jooq.org/xsd/jooq-codegen-3.19.2.xsd", elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED)
@jakarta.xml.bind.annotation.XmlSchema(namespace = "http://www.jooq.org/xsd/jooq-codegen-3.20.0.xsd", elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED)
package org.jooq.meta.jaxb;

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://www.jooq.org/xsd/jooq-codegen-3.19.2.xsd"
xmlns:tns="http://www.jooq.org/xsd/jooq-codegen-3.20.0.xsd"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:annox="http://annox.dev.java.net"
targetNamespace="http://www.jooq.org/xsd/jooq-codegen-3.19.2.xsd"
targetNamespace="http://www.jooq.org/xsd/jooq-codegen-3.20.0.xsd"
elementFormDefault="qualified"
jxb:extensionBindingPrefixes="annox"
jxb:version="2.1">
@ -517,6 +517,42 @@ and follow its (undocumented!) assumptions (e.g. constructors, etc.). Use this a
<element name="fieldGetter" type="tns:MatcherRule" minOccurs="0" maxOccurs="1">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[This rule influences the naming of generated getters (e.g. in {@link org.jooq.TableRecord} and/or POJOs) corresponding to this {@link org.jooq.Field}]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="recordSetterOverride" type="boolean" minOccurs="0" maxOccurs="1" default="false">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether an "override" modifier in generated record setters should be generated.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="recordGetterOverride" type="boolean" minOccurs="0" maxOccurs="1" default="false">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether an "override" modifier in generated record getters should be generated.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="recordMemberOverride" type="boolean" minOccurs="0" maxOccurs="1" default="false">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether an "override" modifier in generated record members (properties) should be generated.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="interfaceSetterOverride" type="boolean" minOccurs="0" maxOccurs="1" default="false">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether an "override" modifier in generated interface setters should be generated.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="interfaceGetterOverride" type="boolean" minOccurs="0" maxOccurs="1" default="false">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether an "override" modifier in generated interface getters should be generated.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="interfaceMemberOverride" type="boolean" minOccurs="0" maxOccurs="1" default="false">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether an "override" modifier in generated interface members (properties) should be generated.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="pojoSetterOverride" type="boolean" minOccurs="0" maxOccurs="1" default="false">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether an "override" modifier in generated POJO setters should be generated.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="pojoGetterOverride" type="boolean" minOccurs="0" maxOccurs="1" default="false">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether an "override" modifier in generated POJO getters should be generated.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="pojoMemberOverride" type="boolean" minOccurs="0" maxOccurs="1" default="false">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether an "override" modifier in generated POJO members (properties) should be generated.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
</all>
</complexType>
@ -768,6 +804,42 @@ and follow its (undocumented!) assumptions (e.g. constructors, etc.). Use this a
<element name="attributeGetter" type="tns:MatcherRule" minOccurs="0" maxOccurs="1">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[This rule influences the naming of generated getters (e.g. in {@link org.jooq.UDTRecord} and/or POJOs) corresponding to this {@link org.jooq.UDTField}]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="recordSetterOverride" type="boolean" minOccurs="0" maxOccurs="1" default="false">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether an "override" modifier in generated record setters should be generated.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="recordGetterOverride" type="boolean" minOccurs="0" maxOccurs="1" default="false">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether an "override" modifier in generated record getters should be generated.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="recordMemberOverride" type="boolean" minOccurs="0" maxOccurs="1" default="false">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether an "override" modifier in generated record members (properties) should be generated.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="interfaceSetterOverride" type="boolean" minOccurs="0" maxOccurs="1" default="false">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether an "override" modifier in generated interface setters should be generated.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="interfaceGetterOverride" type="boolean" minOccurs="0" maxOccurs="1" default="false">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether an "override" modifier in generated interface getters should be generated.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="interfaceMemberOverride" type="boolean" minOccurs="0" maxOccurs="1" default="false">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether an "override" modifier in generated interface members (properties) should be generated.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="pojoSetterOverride" type="boolean" minOccurs="0" maxOccurs="1" default="false">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether an "override" modifier in generated POJO setters should be generated.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="pojoGetterOverride" type="boolean" minOccurs="0" maxOccurs="1" default="false">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether an "override" modifier in generated POJO getters should be generated.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="pojoMemberOverride" type="boolean" minOccurs="0" maxOccurs="1" default="false">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Whether an "override" modifier in generated POJO members (properties) should be generated.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
</all>
</complexType>

View File

@ -139,7 +139,7 @@ public final class Constants {
/**
* The current jooq-codegen XSD file name.
*/
public static final String XSD_CODEGEN = "jooq-codegen-3.19.2.xsd";
public static final String XSD_CODEGEN = "jooq-codegen-3.20.0.xsd";
/**
* The current jooq-codegen XML namespace.