[jOOQ/jOOQ#11787] Add an <includeSystemUDTs/> flag to turn on/off the

generation of system UDTs
This commit is contained in:
Lukas Eder 2021-04-21 11:35:25 +02:00
parent 48e6c35561
commit fcc258bfe8
5 changed files with 68 additions and 0 deletions

View File

@ -541,6 +541,7 @@ public class GenerationTool {
database.setIncludeSystemIndexes(TRUE.equals(d.isIncludeSystemIndexes()));
database.setIncludeSystemCheckConstraints(TRUE.equals(d.isIncludeSystemCheckConstraints()));
database.setIncludeSystemSequences(TRUE.equals(d.isIncludeSystemSequences()));
database.setIncludeSystemUDTs(TRUE.equals(d.isIncludeSystemUDTs()));
database.setIncludeInvisibleColumns(!FALSE.equals(d.isIncludeInvisibleColumns()));
database.setIncludePrimaryKeys(!FALSE.equals(d.isIncludePrimaryKeys()));
database.setIncludeRoutines(!FALSE.equals(d.isIncludeRoutines()));

View File

@ -176,6 +176,7 @@ public abstract class AbstractDatabase implements Database {
private boolean includeSystemIndexes = false;
private boolean includeSystemCheckConstraints = false;
private boolean includeSystemSequences = false;
private boolean includeSystemUDTs = false;
private boolean includePrimaryKeys = true;
private boolean includeUniqueKeys = true;
private boolean includeForeignKeys = true;
@ -1104,6 +1105,16 @@ public abstract class AbstractDatabase implements Database {
return includeSystemSequences;
}
@Override
public final void setIncludeSystemUDTs(boolean includeSystemUDTs) {
this.includeSystemUDTs = includeSystemUDTs;
}
@Override
public final boolean getIncludeSystemUDTs() {
return includeSystemUDTs;
}
@Override
public final void setIncludeIndexes(boolean includeIndexes) {
this.includeIndexes = includeIndexes;

View File

@ -547,6 +547,16 @@ public interface Database extends AutoCloseable {
*/
boolean getIncludeSystemSequences();
/**
* whether system generated UDTs should be included.
*/
void setIncludeSystemUDTs(boolean systemUDTs);
/**
* whether system generated UDTs should be included.
*/
boolean getIncludeSystemUDTs();
/**
* whether indexes should be included.
*/

View File

@ -91,6 +91,8 @@ public class Database implements Serializable, XMLAppendable
protected Boolean includeSystemCheckConstraints = false;
@XmlElement(defaultValue = "false")
protected Boolean includeSystemSequences = false;
@XmlElement(defaultValue = "false")
protected Boolean includeSystemUDTs = false;
@XmlElement(defaultValue = "true")
protected Boolean includeInvisibleColumns = true;
@XmlElement(defaultValue = "")
@ -917,6 +919,30 @@ public class Database implements Serializable, XMLAppendable
this.includeSystemSequences = value;
}
/**
* This flag indicates whether system generated UDTs should be included in output produced by this database
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isIncludeSystemUDTs() {
return includeSystemUDTs;
}
/**
* Sets the value of the includeSystemUDTs property.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setIncludeSystemUDTs(Boolean value) {
this.includeSystemUDTs = value;
}
/**
* This flag indicates whether invisible columns should be included in output produced by this database
*
@ -1959,6 +1985,11 @@ public class Database implements Serializable, XMLAppendable
return this;
}
public Database withIncludeSystemUDTs(Boolean value) {
setIncludeSystemUDTs(value);
return this;
}
public Database withIncludeInvisibleColumns(Boolean value) {
setIncludeInvisibleColumns(value);
return this;
@ -2452,6 +2483,7 @@ public class Database implements Serializable, XMLAppendable
builder.append("includeSystemIndexes", includeSystemIndexes);
builder.append("includeSystemCheckConstraints", includeSystemCheckConstraints);
builder.append("includeSystemSequences", includeSystemSequences);
builder.append("includeSystemUDTs", includeSystemUDTs);
builder.append("includeInvisibleColumns", includeInvisibleColumns);
builder.append("recordVersionFields", recordVersionFields);
builder.append("recordTimestampFields", recordTimestampFields);
@ -2751,6 +2783,15 @@ public class Database implements Serializable, XMLAppendable
return false;
}
}
if (includeSystemUDTs == null) {
if (other.includeSystemUDTs!= null) {
return false;
}
} else {
if (!includeSystemUDTs.equals(other.includeSystemUDTs)) {
return false;
}
}
if (includeInvisibleColumns == null) {
if (other.includeInvisibleColumns!= null) {
return false;
@ -3100,6 +3141,7 @@ public class Database implements Serializable, XMLAppendable
result = ((prime*result)+((includeSystemIndexes == null)? 0 :includeSystemIndexes.hashCode()));
result = ((prime*result)+((includeSystemCheckConstraints == null)? 0 :includeSystemCheckConstraints.hashCode()));
result = ((prime*result)+((includeSystemSequences == null)? 0 :includeSystemSequences.hashCode()));
result = ((prime*result)+((includeSystemUDTs == null)? 0 :includeSystemUDTs.hashCode()));
result = ((prime*result)+((includeInvisibleColumns == null)? 0 :includeInvisibleColumns.hashCode()));
result = ((prime*result)+((recordVersionFields == null)? 0 :recordVersionFields.hashCode()));
result = ((prime*result)+((recordTimestampFields == null)? 0 :recordTimestampFields.hashCode()));

View File

@ -660,6 +660,10 @@ Excludes match before includes, i.e. excludes have a higher priority.]]></jxb:ja
<element name="includeSystemSequences" type="boolean" default="false" minOccurs="0" maxOccurs="1">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[This flag indicates whether system generated sequences should be included in output produced by this database]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="includeSystemUDTs" type="boolean" default="false" minOccurs="0" maxOccurs="1">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[This flag indicates whether system generated UDTs should be included in output produced by this database]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="includeInvisibleColumns" type="boolean" default="true" minOccurs="0" maxOccurs="1">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[This flag indicates whether invisible columns should be included in output produced by this database]]></jxb:javadoc></jxb:property></appinfo></annotation>