[jOOQ/jOOQ#13971] Add DataType.array() as a DSL style shortcut for

getArrayDataType()
This commit is contained in:
Lukas Eder 2022-09-09 17:45:58 +02:00
parent c204c57010
commit e25723afa7
3 changed files with 15 additions and 2 deletions

View File

@ -9192,9 +9192,9 @@ public class JavaGenerator extends AbstractGenerator {
// [#252] This check prevents StackOverflowError in case of e.g. PostgreSQL ANYARRAY types
if (base != type)
return getJavaTypeReference(db, base, out) + ".getArrayDataType()";
return getJavaTypeReference(db, base, out) + ".array()";
else
return getJavaTypeReference0(db, type, out) + ".getArrayDataType()";
return getJavaTypeReference0(db, type, out) + ".array()";
}
else

View File

@ -202,6 +202,13 @@ public interface DataType<T> extends Named {
@NotNull
DataType<T[]> getArrayDataType() throws DataTypeException;
/**
* A convenient short for form {@link #getArrayDataType()} for DSL usage
*/
@NotNull
@Support({ H2, HSQLDB, POSTGRES, YUGABYTEDB })
DataType<T[]> array() throws DataTypeException;
/**
* Retrieve the Java component type if this is an ARRAY type, or
* <code>null</code>, otherwise.

View File

@ -109,6 +109,7 @@ import org.jooq.Schema;
import org.jooq.ContextConverter;
import org.jooq.Table;
import org.jooq.XML;
import org.jooq.exception.DataTypeException;
import org.jooq.impl.QOM.GenerationLocation;
import org.jooq.impl.QOM.GenerationOption;
import org.jooq.impl.QOM.UEmpty;
@ -659,6 +660,11 @@ implements
return new ArrayDataType<>(this);
}
@Override
public final DataType<T[]> array() {
return getArrayDataType();
}
@Override
public /* non-final */ Class<?> getArrayComponentType() {
return null;