[jOOQ/jOOQ#17063] Update DataType.isXYZ() Javadoc with new types
This commit is contained in:
parent
aa3fbda55d
commit
044cebb85b
@ -181,6 +181,7 @@ abstract class AbstractGenerator implements Generator {
|
||||
boolean generateXmlTypes = true;
|
||||
boolean generateJsonTypes = true;
|
||||
boolean generateIntervalTypes = true;
|
||||
boolean generateDecfloatTypes = true;
|
||||
boolean generateTableValuedFunctions = false;
|
||||
boolean generateEmptyCatalogs = false;
|
||||
boolean generateEmptySchemas = false;
|
||||
@ -1444,6 +1445,16 @@ abstract class AbstractGenerator implements Generator {
|
||||
this.generateIntervalTypes = generateIntervalTypes;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean generateDecfloatTypes() {
|
||||
return generateDecfloatTypes;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setGenerateDecfloatTypes(boolean generateDecfloatTypes) {
|
||||
this.generateDecfloatTypes = generateDecfloatTypes;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean generateEmptyCatalogs() {
|
||||
return generateEmptyCatalogs;
|
||||
|
||||
@ -961,6 +961,8 @@ public class GenerationTool {
|
||||
generator.setGenerateJsonTypes(g.getGenerate().isJsonTypes());
|
||||
if (g.getGenerate().isIntervalTypes() != null)
|
||||
generator.setGenerateIntervalTypes(g.getGenerate().isIntervalTypes());
|
||||
if (g.getGenerate().isDecfloatTypes() != null)
|
||||
generator.setGenerateDecfloatTypes(g.getGenerate().isDecfloatTypes());
|
||||
if (g.getGenerate().isEmptyCatalogs() != null)
|
||||
generator.setGenerateEmptyCatalogs(g.getGenerate().isEmptyCatalogs());
|
||||
if (g.getGenerate().isEmptySchemas() != null)
|
||||
|
||||
@ -43,6 +43,7 @@ import java.util.Locale;
|
||||
|
||||
import org.jooq.Condition;
|
||||
import org.jooq.Constants;
|
||||
import org.jooq.Decfloat;
|
||||
import org.jooq.Generated;
|
||||
import org.jooq.JSON;
|
||||
import org.jooq.JSONB;
|
||||
@ -1354,7 +1355,19 @@ public interface Generator {
|
||||
* A flag indicating whether the {@link Interval} type support should be
|
||||
* enabled.
|
||||
*/
|
||||
void setGenerateIntervalTypes(boolean generateJsonTypes);
|
||||
void setGenerateIntervalTypes(boolean generateIntervalTypes);
|
||||
|
||||
/**
|
||||
* A flag indicating whether the {@link Decfloat} type support should be
|
||||
* enabled.
|
||||
*/
|
||||
boolean generateDecfloatTypes();
|
||||
|
||||
/**
|
||||
* A flag indicating whether the {@link Decfloat} type support should be
|
||||
* enabled.
|
||||
*/
|
||||
void setGenerateDecfloatTypes(boolean generateDecfloatTypes);
|
||||
|
||||
/**
|
||||
* Whether empty catalogs should still be generated.
|
||||
|
||||
@ -11097,7 +11097,8 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
dataType.isSpatial() && !generateSpatialTypes() ||
|
||||
dataType.isJSON() && !generateJsonTypes() ||
|
||||
dataType.isXML() && !generateXmlTypes() ||
|
||||
dataType.isInterval() && !generateIntervalTypes()
|
||||
dataType.isInterval() && !generateIntervalTypes() ||
|
||||
dataType.isFloat() && dataType.isDecimal() && !generateDecfloatTypes()
|
||||
)
|
||||
result = SQLDataType.OTHER;
|
||||
|
||||
|
||||
@ -254,6 +254,8 @@ public class Generate implements Serializable, XMLAppendable
|
||||
protected Boolean jsonTypes = true;
|
||||
@XmlElement(defaultValue = "true")
|
||||
protected Boolean intervalTypes = true;
|
||||
@XmlElement(defaultValue = "true")
|
||||
protected Boolean decfloatTypes = true;
|
||||
@XmlElement(defaultValue = "\\n")
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String newline = "\\n";
|
||||
@ -2935,6 +2937,30 @@ public class Generate implements Serializable, XMLAppendable
|
||||
this.intervalTypes = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* A flag indicating whether the DECFLOAT type support should be enabled.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link Boolean }
|
||||
*
|
||||
*/
|
||||
public Boolean isDecfloatTypes() {
|
||||
return decfloatTypes;
|
||||
}
|
||||
|
||||
/**
|
||||
* A flag indicating whether the DECFLOAT type support should be enabled.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link Boolean }
|
||||
*
|
||||
*/
|
||||
public void setDecfloatTypes(Boolean value) {
|
||||
this.decfloatTypes = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* The newline characters to be used in generated code. Whitespace characters can be used, e.g. \n, \r\n
|
||||
*
|
||||
@ -4184,6 +4210,15 @@ public class Generate implements Serializable, XMLAppendable
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* A flag indicating whether the DECFLOAT type support should be enabled.
|
||||
*
|
||||
*/
|
||||
public Generate withDecfloatTypes(Boolean value) {
|
||||
setDecfloatTypes(value);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* The newline characters to be used in generated code. Whitespace characters can be used, e.g. \n, \r\n
|
||||
*
|
||||
@ -4392,6 +4427,7 @@ public class Generate implements Serializable, XMLAppendable
|
||||
builder.append("xmlTypes", xmlTypes);
|
||||
builder.append("jsonTypes", jsonTypes);
|
||||
builder.append("intervalTypes", intervalTypes);
|
||||
builder.append("decfloatTypes", decfloatTypes);
|
||||
builder.append("newline", newline);
|
||||
builder.append("indentation", indentation);
|
||||
builder.append("printMarginForBlockComment", printMarginForBlockComment);
|
||||
@ -5413,6 +5449,15 @@ public class Generate implements Serializable, XMLAppendable
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (decfloatTypes == null) {
|
||||
if (other.decfloatTypes!= null) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
if (!decfloatTypes.equals(other.decfloatTypes)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (newline == null) {
|
||||
if (other.newline!= null) {
|
||||
return false;
|
||||
@ -5620,6 +5665,7 @@ public class Generate implements Serializable, XMLAppendable
|
||||
result = ((prime*result)+((xmlTypes == null)? 0 :xmlTypes.hashCode()));
|
||||
result = ((prime*result)+((jsonTypes == null)? 0 :jsonTypes.hashCode()));
|
||||
result = ((prime*result)+((intervalTypes == null)? 0 :intervalTypes.hashCode()));
|
||||
result = ((prime*result)+((decfloatTypes == null)? 0 :decfloatTypes.hashCode()));
|
||||
result = ((prime*result)+((newline == null)? 0 :newline.hashCode()));
|
||||
result = ((prime*result)+((indentation == null)? 0 :indentation.hashCode()));
|
||||
result = ((prime*result)+((printMarginForBlockComment == null)? 0 :printMarginForBlockComment.hashCode()));
|
||||
|
||||
@ -2976,6 +2976,10 @@ This flag is ignored in the commercial Java 6 distribution of jOOQ 3.9+ ]]></jxb
|
||||
<element name="intervalTypes" type="boolean" default="true" minOccurs="0" maxOccurs="1">
|
||||
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[A flag indicating whether the INTERVAL type support should be enabled.]]></jxb:javadoc></jxb:property></appinfo></annotation>
|
||||
</element>
|
||||
|
||||
<element name="decfloatTypes" type="boolean" default="true" minOccurs="0" maxOccurs="1">
|
||||
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[A flag indicating whether the DECFLOAT type support should be enabled.]]></jxb:javadoc></jxb:property></appinfo></annotation>
|
||||
</element>
|
||||
|
||||
<element name="newline" type="string" default="\n" minOccurs="0" maxOccurs="1">
|
||||
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[The newline characters to be used in generated code. Whitespace characters can be used, e.g. \n, \r\n]]></jxb:javadoc></jxb:property></appinfo></annotation>
|
||||
|
||||
@ -1322,6 +1322,7 @@ public interface DataType<T> extends Named {
|
||||
* <li> {@link SQLDataType#DECIMAL}</li>
|
||||
* <li> {@link SQLDataType#DECIMAL_INTEGER}</li>
|
||||
* <li> {@link SQLDataType#NUMERIC}</li>
|
||||
* <li> {@link SQLDataType#DECFLOAT}</li>
|
||||
* </ul>
|
||||
*
|
||||
* @see #isNumeric()
|
||||
@ -1349,10 +1350,24 @@ public interface DataType<T> extends Named {
|
||||
* <li> {@link SQLDataType#FLOAT}</li>
|
||||
* <li> {@link SQLDataType#DOUBLE}</li>
|
||||
* <li> {@link SQLDataType#REAL}</li>
|
||||
* <li> {@link SQLDataType#DECFLOAT}</li>
|
||||
* </ul>
|
||||
*/
|
||||
boolean isFloat();
|
||||
|
||||
/**
|
||||
* Whether this data type is any decimal numeric data type.
|
||||
* <p>
|
||||
* This applies to any of these types:
|
||||
* <ul>
|
||||
* <li> {@link SQLDataType#DECIMAL}</li>
|
||||
* <li> {@link SQLDataType#DECIMAL_INTEGER}</li>
|
||||
* <li> {@link SQLDataType#NUMERIC}</li>
|
||||
* <li> {@link SQLDataType#DECFLOAT}</li>
|
||||
* </ul>
|
||||
*/
|
||||
boolean isDecimal();
|
||||
|
||||
/**
|
||||
* Whether this data type is any boolean data type.
|
||||
* <p>
|
||||
@ -1408,6 +1423,7 @@ public interface DataType<T> extends Named {
|
||||
* <li> {@link SQLDataType#OFFSETTIME}</li>
|
||||
* <li> {@link SQLDataType#OFFSETDATETIME}</li>
|
||||
* <li> {@link SQLDataType#INSTANT}</li>
|
||||
* <li> {@link SQLDataType#YEAR}</li>
|
||||
* </ul>
|
||||
*
|
||||
* @see #isDate()
|
||||
@ -1460,6 +1476,8 @@ public interface DataType<T> extends Named {
|
||||
* <li> {@link SQLDataType#LOCALDATETIME}</li>
|
||||
* <li> {@link SQLDataType#OFFSETTIME}</li>
|
||||
* <li> {@link SQLDataType#OFFSETDATETIME}</li>
|
||||
* <li> {@link SQLDataType#INSTANT}</li>
|
||||
* <li> {@link SQLDataType#YEAR}</li>
|
||||
* <li> {@link YearToSecond}</li>
|
||||
* <li> {@link YearToMonth}</li>
|
||||
* <li> {@link DayToSecond}</li>
|
||||
|
||||
@ -52,7 +52,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
* <code>data() == null</code>. This is consistent with jOOQ's general way of
|
||||
* returning <code>NULL</code> from {@link Result} and {@link Record} methods.
|
||||
*/
|
||||
public class Decfloat implements Data {
|
||||
public final class Decfloat extends Number implements Data {
|
||||
|
||||
private final String data;
|
||||
private transient BigDecimal coefficient;
|
||||
@ -97,6 +97,34 @@ public class Decfloat implements Data {
|
||||
return data == null ? null : decfloat(data);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// The Number API
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
public final double doubleValue() {
|
||||
return Double.valueOf(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final float floatValue() {
|
||||
return Float.valueOf(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final int intValue() {
|
||||
return (int) doubleValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public final long longValue() {
|
||||
return (long) doubleValue();
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// The Object API
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
parse();
|
||||
@ -156,7 +184,7 @@ public class Decfloat implements Data {
|
||||
return String.valueOf(data);
|
||||
}
|
||||
|
||||
private void parse() {
|
||||
private final void parse() {
|
||||
if (coefficient != null || special != null)
|
||||
return;
|
||||
|
||||
|
||||
@ -73,6 +73,7 @@ import static org.jooq.impl.QOM.GenerationOption.VIRTUAL;
|
||||
import static org.jooq.impl.SQLDataType.BLOB;
|
||||
import static org.jooq.impl.SQLDataType.CHAR;
|
||||
import static org.jooq.impl.SQLDataType.CLOB;
|
||||
import static org.jooq.impl.SQLDataType.LONGNVARCHAR;
|
||||
import static org.jooq.impl.SQLDataType.NCHAR;
|
||||
import static org.jooq.impl.SQLDataType.NCLOB;
|
||||
import static org.jooq.impl.SQLDataType.NVARCHAR;
|
||||
@ -114,6 +115,7 @@ import org.jooq.ContextConverter;
|
||||
import org.jooq.Converter;
|
||||
import org.jooq.ConverterContext;
|
||||
import org.jooq.DataType;
|
||||
import org.jooq.Decfloat;
|
||||
import org.jooq.Domain;
|
||||
import org.jooq.EmbeddableRecord;
|
||||
import org.jooq.EnumType;
|
||||
@ -863,6 +865,14 @@ implements
|
||||
return Number.class.isAssignableFrom(tType0()) && !isInterval();
|
||||
}
|
||||
|
||||
@Override
|
||||
public final boolean isDecimal() {
|
||||
Class<?> tType = tType0();
|
||||
return BigInteger.class == tType
|
||||
|| BigDecimal.class == tType
|
||||
|| Decfloat.class == tType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final boolean isInteger() {
|
||||
Class<?> tType = tType0();
|
||||
@ -879,6 +889,7 @@ implements
|
||||
Class<?> tType = tType0();
|
||||
return Float.class == tType
|
||||
|| Double.class == tType
|
||||
|| Decfloat.class == tType
|
||||
;
|
||||
}
|
||||
|
||||
@ -898,11 +909,14 @@ implements
|
||||
return t == NCHAR
|
||||
|| t == NCLOB
|
||||
|| t == NVARCHAR
|
||||
|| t == LONGNVARCHAR
|
||||
|
||||
// [#9540] [#10368] In case the constant literals haven't been initialised yet
|
||||
|| NCHAR == null && "nchar".equals(t.typeName0())
|
||||
|| NCLOB == null && "nclob".equals(t.typeName0())
|
||||
|| NVARCHAR == null && "nvarchar".equals(t.typeName0());
|
||||
|| NVARCHAR == null && "nvarchar".equals(t.typeName0())
|
||||
|| LONGNVARCHAR == null && "longnvarchar".equals(t.typeName0())
|
||||
;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Loading…
Reference in New Issue
Block a user