[#686] Reduce the internal API leak by preventing access to TableFieldImpl, UDTFieldImpl, and other internal classes - Hide UDTFieldImpl
This commit is contained in:
parent
2ef7382160
commit
db8ba92e7e
@ -91,7 +91,6 @@ import org.jooq.impl.StopWatch;
|
||||
import org.jooq.impl.StringUtils;
|
||||
import org.jooq.impl.TableImpl;
|
||||
import org.jooq.impl.TableRecordImpl;
|
||||
import org.jooq.impl.UDTFieldImpl;
|
||||
import org.jooq.impl.UDTImpl;
|
||||
import org.jooq.impl.UDTRecordImpl;
|
||||
import org.jooq.impl.UpdatableRecordImpl;
|
||||
@ -1956,7 +1955,7 @@ public class DefaultGenerator implements Generator {
|
||||
|
||||
private void printUDTColumn(GenerationWriter out, AttributeDefinition attribute, Definition table) throws SQLException {
|
||||
Class<?> declaredMemberClass = UDTField.class;
|
||||
Class<?> concreteMemberClass = UDTFieldImpl.class;
|
||||
Class<?> concreteMemberClass = null;
|
||||
|
||||
printColumnDefinition(out, attribute, table, declaredMemberClass, concreteMemberClass);
|
||||
}
|
||||
@ -1994,7 +1993,10 @@ public class DefaultGenerator implements Generator {
|
||||
out.print(strategy.getJavaIdentifierUC(column));
|
||||
out.print(columnDisambiguationSuffix);
|
||||
|
||||
if (concreteMemberClass == null) {
|
||||
if (declaredMemberClass == TableField.class) {
|
||||
out.print(" = createField");
|
||||
}
|
||||
else if (declaredMemberClass == UDTField.class) {
|
||||
out.print(" = createField");
|
||||
}
|
||||
else {
|
||||
|
||||
@ -10,7 +10,7 @@ package org.jooq.test.oracle.generatedclasses.udt;
|
||||
comments = "This class is generated by jOOQ")
|
||||
public class UAddressType extends org.jooq.impl.UDTImpl<org.jooq.test.oracle.generatedclasses.udt.records.UAddressTypeRecord> {
|
||||
|
||||
private static final long serialVersionUID = 983448138;
|
||||
private static final long serialVersionUID = -712150981;
|
||||
|
||||
/**
|
||||
* The singleton instance of U_ADDRESS_TYPE
|
||||
@ -33,32 +33,32 @@ public class UAddressType extends org.jooq.impl.UDTImpl<org.jooq.test.oracle.gen
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public static final org.jooq.UDTField<org.jooq.test.oracle.generatedclasses.udt.records.UAddressTypeRecord, org.jooq.test.oracle.generatedclasses.udt.records.UStreetTypeRecord> STREET = new org.jooq.impl.UDTFieldImpl<org.jooq.test.oracle.generatedclasses.udt.records.UAddressTypeRecord, org.jooq.test.oracle.generatedclasses.udt.records.UStreetTypeRecord>("STREET", org.jooq.test.oracle.generatedclasses.udt.UStreetType.U_STREET_TYPE.getDataType(), U_ADDRESS_TYPE);
|
||||
public static final org.jooq.UDTField<org.jooq.test.oracle.generatedclasses.udt.records.UAddressTypeRecord, org.jooq.test.oracle.generatedclasses.udt.records.UStreetTypeRecord> STREET = createField("STREET", org.jooq.test.oracle.generatedclasses.udt.UStreetType.U_STREET_TYPE.getDataType(), U_ADDRESS_TYPE);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public static final org.jooq.UDTField<org.jooq.test.oracle.generatedclasses.udt.records.UAddressTypeRecord, java.lang.String> ZIP = new org.jooq.impl.UDTFieldImpl<org.jooq.test.oracle.generatedclasses.udt.records.UAddressTypeRecord, java.lang.String>("ZIP", org.jooq.impl.SQLDataType.VARCHAR, U_ADDRESS_TYPE);
|
||||
public static final org.jooq.UDTField<org.jooq.test.oracle.generatedclasses.udt.records.UAddressTypeRecord, java.lang.String> ZIP = createField("ZIP", org.jooq.impl.SQLDataType.VARCHAR, U_ADDRESS_TYPE);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public static final org.jooq.UDTField<org.jooq.test.oracle.generatedclasses.udt.records.UAddressTypeRecord, java.lang.String> CITY = new org.jooq.impl.UDTFieldImpl<org.jooq.test.oracle.generatedclasses.udt.records.UAddressTypeRecord, java.lang.String>("CITY", org.jooq.impl.SQLDataType.VARCHAR, U_ADDRESS_TYPE);
|
||||
public static final org.jooq.UDTField<org.jooq.test.oracle.generatedclasses.udt.records.UAddressTypeRecord, java.lang.String> CITY = createField("CITY", org.jooq.impl.SQLDataType.VARCHAR, U_ADDRESS_TYPE);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public static final org.jooq.UDTField<org.jooq.test.oracle.generatedclasses.udt.records.UAddressTypeRecord, java.lang.String> COUNTRY = new org.jooq.impl.UDTFieldImpl<org.jooq.test.oracle.generatedclasses.udt.records.UAddressTypeRecord, java.lang.String>("COUNTRY", org.jooq.impl.SQLDataType.VARCHAR, U_ADDRESS_TYPE);
|
||||
public static final org.jooq.UDTField<org.jooq.test.oracle.generatedclasses.udt.records.UAddressTypeRecord, java.lang.String> COUNTRY = createField("COUNTRY", org.jooq.impl.SQLDataType.VARCHAR, U_ADDRESS_TYPE);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public static final org.jooq.UDTField<org.jooq.test.oracle.generatedclasses.udt.records.UAddressTypeRecord, java.sql.Date> SINCE = new org.jooq.impl.UDTFieldImpl<org.jooq.test.oracle.generatedclasses.udt.records.UAddressTypeRecord, java.sql.Date>("SINCE", org.jooq.impl.SQLDataType.DATE, U_ADDRESS_TYPE);
|
||||
public static final org.jooq.UDTField<org.jooq.test.oracle.generatedclasses.udt.records.UAddressTypeRecord, java.sql.Date> SINCE = createField("SINCE", org.jooq.impl.SQLDataType.DATE, U_ADDRESS_TYPE);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public static final org.jooq.UDTField<org.jooq.test.oracle.generatedclasses.udt.records.UAddressTypeRecord, java.lang.Integer> CODE = new org.jooq.impl.UDTFieldImpl<org.jooq.test.oracle.generatedclasses.udt.records.UAddressTypeRecord, java.lang.Integer>("CODE", org.jooq.impl.SQLDataType.INTEGER, U_ADDRESS_TYPE);
|
||||
public static final org.jooq.UDTField<org.jooq.test.oracle.generatedclasses.udt.records.UAddressTypeRecord, java.lang.Integer> CODE = createField("CODE", org.jooq.impl.SQLDataType.INTEGER, U_ADDRESS_TYPE);
|
||||
|
||||
/**
|
||||
* No further instances allowed
|
||||
|
||||
@ -10,7 +10,7 @@ package org.jooq.test.oracle.generatedclasses.udt;
|
||||
comments = "This class is generated by jOOQ")
|
||||
public class UStreetType extends org.jooq.impl.UDTImpl<org.jooq.test.oracle.generatedclasses.udt.records.UStreetTypeRecord> {
|
||||
|
||||
private static final long serialVersionUID = 433340382;
|
||||
private static final long serialVersionUID = 753873137;
|
||||
|
||||
/**
|
||||
* The singleton instance of U_STREET_TYPE
|
||||
@ -33,17 +33,17 @@ public class UStreetType extends org.jooq.impl.UDTImpl<org.jooq.test.oracle.gene
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public static final org.jooq.UDTField<org.jooq.test.oracle.generatedclasses.udt.records.UStreetTypeRecord, java.lang.String> STREET = new org.jooq.impl.UDTFieldImpl<org.jooq.test.oracle.generatedclasses.udt.records.UStreetTypeRecord, java.lang.String>("STREET", org.jooq.impl.SQLDataType.VARCHAR, U_STREET_TYPE);
|
||||
public static final org.jooq.UDTField<org.jooq.test.oracle.generatedclasses.udt.records.UStreetTypeRecord, java.lang.String> STREET = createField("STREET", org.jooq.impl.SQLDataType.VARCHAR, U_STREET_TYPE);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public static final org.jooq.UDTField<org.jooq.test.oracle.generatedclasses.udt.records.UStreetTypeRecord, java.lang.String> NO = new org.jooq.impl.UDTFieldImpl<org.jooq.test.oracle.generatedclasses.udt.records.UStreetTypeRecord, java.lang.String>("NO", org.jooq.impl.SQLDataType.VARCHAR, U_STREET_TYPE);
|
||||
public static final org.jooq.UDTField<org.jooq.test.oracle.generatedclasses.udt.records.UStreetTypeRecord, java.lang.String> NO = createField("NO", org.jooq.impl.SQLDataType.VARCHAR, U_STREET_TYPE);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public static final org.jooq.UDTField<org.jooq.test.oracle.generatedclasses.udt.records.UStreetTypeRecord, org.jooq.test.oracle.generatedclasses.udt.records.UNumberArrayRecord> FLOORS = new org.jooq.impl.UDTFieldImpl<org.jooq.test.oracle.generatedclasses.udt.records.UStreetTypeRecord, org.jooq.test.oracle.generatedclasses.udt.records.UNumberArrayRecord>("FLOORS", org.jooq.impl.SQLDataType.INTEGER.asArrayDataType(org.jooq.test.oracle.generatedclasses.udt.records.UNumberArrayRecord.class), U_STREET_TYPE);
|
||||
public static final org.jooq.UDTField<org.jooq.test.oracle.generatedclasses.udt.records.UStreetTypeRecord, org.jooq.test.oracle.generatedclasses.udt.records.UNumberArrayRecord> FLOORS = createField("FLOORS", org.jooq.impl.SQLDataType.INTEGER.asArrayDataType(org.jooq.test.oracle.generatedclasses.udt.records.UNumberArrayRecord.class), U_STREET_TYPE);
|
||||
|
||||
/**
|
||||
* No further instances allowed
|
||||
|
||||
@ -10,7 +10,7 @@ package org.jooq.test.postgres.generatedclasses.udt;
|
||||
comments = "This class is generated by jOOQ")
|
||||
public class UAddressType extends org.jooq.impl.UDTImpl<org.jooq.test.postgres.generatedclasses.udt.records.UAddressTypeRecord> {
|
||||
|
||||
private static final long serialVersionUID = 1805761761;
|
||||
private static final long serialVersionUID = -1666465402;
|
||||
|
||||
/**
|
||||
* The singleton instance of u_address_type
|
||||
@ -33,32 +33,32 @@ public class UAddressType extends org.jooq.impl.UDTImpl<org.jooq.test.postgres.g
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public static final org.jooq.UDTField<org.jooq.test.postgres.generatedclasses.udt.records.UAddressTypeRecord, org.jooq.test.postgres.generatedclasses.udt.records.UStreetTypeRecord> STREET = new org.jooq.impl.UDTFieldImpl<org.jooq.test.postgres.generatedclasses.udt.records.UAddressTypeRecord, org.jooq.test.postgres.generatedclasses.udt.records.UStreetTypeRecord>("street", org.jooq.test.postgres.generatedclasses.udt.UStreetType.U_STREET_TYPE.getDataType(), U_ADDRESS_TYPE);
|
||||
public static final org.jooq.UDTField<org.jooq.test.postgres.generatedclasses.udt.records.UAddressTypeRecord, org.jooq.test.postgres.generatedclasses.udt.records.UStreetTypeRecord> STREET = createField("street", org.jooq.test.postgres.generatedclasses.udt.UStreetType.U_STREET_TYPE.getDataType(), U_ADDRESS_TYPE);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public static final org.jooq.UDTField<org.jooq.test.postgres.generatedclasses.udt.records.UAddressTypeRecord, java.lang.String> ZIP = new org.jooq.impl.UDTFieldImpl<org.jooq.test.postgres.generatedclasses.udt.records.UAddressTypeRecord, java.lang.String>("zip", org.jooq.impl.SQLDataType.VARCHAR, U_ADDRESS_TYPE);
|
||||
public static final org.jooq.UDTField<org.jooq.test.postgres.generatedclasses.udt.records.UAddressTypeRecord, java.lang.String> ZIP = createField("zip", org.jooq.impl.SQLDataType.VARCHAR, U_ADDRESS_TYPE);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public static final org.jooq.UDTField<org.jooq.test.postgres.generatedclasses.udt.records.UAddressTypeRecord, java.lang.String> CITY = new org.jooq.impl.UDTFieldImpl<org.jooq.test.postgres.generatedclasses.udt.records.UAddressTypeRecord, java.lang.String>("city", org.jooq.impl.SQLDataType.VARCHAR, U_ADDRESS_TYPE);
|
||||
public static final org.jooq.UDTField<org.jooq.test.postgres.generatedclasses.udt.records.UAddressTypeRecord, java.lang.String> CITY = createField("city", org.jooq.impl.SQLDataType.VARCHAR, U_ADDRESS_TYPE);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public static final org.jooq.UDTField<org.jooq.test.postgres.generatedclasses.udt.records.UAddressTypeRecord, org.jooq.test.postgres.generatedclasses.enums.UCountry> COUNTRY = new org.jooq.impl.UDTFieldImpl<org.jooq.test.postgres.generatedclasses.udt.records.UAddressTypeRecord, org.jooq.test.postgres.generatedclasses.enums.UCountry>("country", org.jooq.util.postgres.PostgresDataType.VARCHAR.asEnumDataType(org.jooq.test.postgres.generatedclasses.enums.UCountry.class), U_ADDRESS_TYPE);
|
||||
public static final org.jooq.UDTField<org.jooq.test.postgres.generatedclasses.udt.records.UAddressTypeRecord, org.jooq.test.postgres.generatedclasses.enums.UCountry> COUNTRY = createField("country", org.jooq.util.postgres.PostgresDataType.VARCHAR.asEnumDataType(org.jooq.test.postgres.generatedclasses.enums.UCountry.class), U_ADDRESS_TYPE);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public static final org.jooq.UDTField<org.jooq.test.postgres.generatedclasses.udt.records.UAddressTypeRecord, java.sql.Date> SINCE = new org.jooq.impl.UDTFieldImpl<org.jooq.test.postgres.generatedclasses.udt.records.UAddressTypeRecord, java.sql.Date>("since", org.jooq.impl.SQLDataType.DATE, U_ADDRESS_TYPE);
|
||||
public static final org.jooq.UDTField<org.jooq.test.postgres.generatedclasses.udt.records.UAddressTypeRecord, java.sql.Date> SINCE = createField("since", org.jooq.impl.SQLDataType.DATE, U_ADDRESS_TYPE);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public static final org.jooq.UDTField<org.jooq.test.postgres.generatedclasses.udt.records.UAddressTypeRecord, java.lang.Integer> CODE = new org.jooq.impl.UDTFieldImpl<org.jooq.test.postgres.generatedclasses.udt.records.UAddressTypeRecord, java.lang.Integer>("code", org.jooq.impl.SQLDataType.INTEGER, U_ADDRESS_TYPE);
|
||||
public static final org.jooq.UDTField<org.jooq.test.postgres.generatedclasses.udt.records.UAddressTypeRecord, java.lang.Integer> CODE = createField("code", org.jooq.impl.SQLDataType.INTEGER, U_ADDRESS_TYPE);
|
||||
|
||||
/**
|
||||
* No further instances allowed
|
||||
|
||||
@ -10,7 +10,7 @@ package org.jooq.test.postgres.generatedclasses.udt;
|
||||
comments = "This class is generated by jOOQ")
|
||||
public class UStreetType extends org.jooq.impl.UDTImpl<org.jooq.test.postgres.generatedclasses.udt.records.UStreetTypeRecord> {
|
||||
|
||||
private static final long serialVersionUID = -2075501201;
|
||||
private static final long serialVersionUID = -1622828094;
|
||||
|
||||
/**
|
||||
* The singleton instance of u_street_type
|
||||
@ -33,17 +33,17 @@ public class UStreetType extends org.jooq.impl.UDTImpl<org.jooq.test.postgres.ge
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public static final org.jooq.UDTField<org.jooq.test.postgres.generatedclasses.udt.records.UStreetTypeRecord, java.lang.String> STREET = new org.jooq.impl.UDTFieldImpl<org.jooq.test.postgres.generatedclasses.udt.records.UStreetTypeRecord, java.lang.String>("street", org.jooq.impl.SQLDataType.VARCHAR, U_STREET_TYPE);
|
||||
public static final org.jooq.UDTField<org.jooq.test.postgres.generatedclasses.udt.records.UStreetTypeRecord, java.lang.String> STREET = createField("street", org.jooq.impl.SQLDataType.VARCHAR, U_STREET_TYPE);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public static final org.jooq.UDTField<org.jooq.test.postgres.generatedclasses.udt.records.UStreetTypeRecord, java.lang.String> NO = new org.jooq.impl.UDTFieldImpl<org.jooq.test.postgres.generatedclasses.udt.records.UStreetTypeRecord, java.lang.String>("no", org.jooq.impl.SQLDataType.VARCHAR, U_STREET_TYPE);
|
||||
public static final org.jooq.UDTField<org.jooq.test.postgres.generatedclasses.udt.records.UStreetTypeRecord, java.lang.String> NO = createField("no", org.jooq.impl.SQLDataType.VARCHAR, U_STREET_TYPE);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public static final org.jooq.UDTField<org.jooq.test.postgres.generatedclasses.udt.records.UStreetTypeRecord, java.lang.Integer[]> FLOORS = new org.jooq.impl.UDTFieldImpl<org.jooq.test.postgres.generatedclasses.udt.records.UStreetTypeRecord, java.lang.Integer[]>("floors", org.jooq.impl.SQLDataType.INTEGER.getArrayDataType(), U_STREET_TYPE);
|
||||
public static final org.jooq.UDTField<org.jooq.test.postgres.generatedclasses.udt.records.UStreetTypeRecord, java.lang.Integer[]> FLOORS = createField("floors", org.jooq.impl.SQLDataType.INTEGER.getArrayDataType(), U_STREET_TYPE);
|
||||
|
||||
/**
|
||||
* No further instances allowed
|
||||
|
||||
@ -49,8 +49,6 @@ import org.jooq.TableField;
|
||||
|
||||
/**
|
||||
* A common base type for table fields.
|
||||
* <p>
|
||||
* This type is for JOOQ INTERNAL USE only. Do not reference directly
|
||||
*
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
@ -60,7 +58,7 @@ class TableFieldImpl<R extends Record, T> extends AbstractField<T> implements Ta
|
||||
|
||||
private final Table<R> table;
|
||||
|
||||
public TableFieldImpl(String name, DataType<T> type, Table<R> table) {
|
||||
TableFieldImpl(String name, DataType<T> type, Table<R> table) {
|
||||
super(name, type);
|
||||
|
||||
this.table = table;
|
||||
|
||||
@ -49,18 +49,16 @@ import org.jooq.UDTRecord;
|
||||
|
||||
/**
|
||||
* A common base type for UDT attributes / fields
|
||||
* <p>
|
||||
* This type is for JOOQ INTERNAL USE only. Do not reference directly
|
||||
*
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
public class UDTFieldImpl<R extends UDTRecord<R>, T> extends AbstractField<T> implements UDTField<R, T> {
|
||||
class UDTFieldImpl<R extends UDTRecord<R>, T> extends AbstractField<T> implements UDTField<R, T> {
|
||||
|
||||
private static final long serialVersionUID = -2211214195583539735L;
|
||||
|
||||
private final UDT<R> udt;
|
||||
|
||||
public UDTFieldImpl(String name, DataType<T> type, UDT<R> udt) {
|
||||
UDTFieldImpl(String name, DataType<T> type, UDT<R> udt) {
|
||||
super(name, type);
|
||||
|
||||
this.udt = udt;
|
||||
|
||||
@ -48,6 +48,7 @@ import org.jooq.Record;
|
||||
import org.jooq.RenderContext;
|
||||
import org.jooq.Schema;
|
||||
import org.jooq.UDT;
|
||||
import org.jooq.UDTField;
|
||||
import org.jooq.UDTRecord;
|
||||
|
||||
/**
|
||||
@ -125,4 +126,15 @@ public class UDTImpl<R extends UDTRecord<R>> extends AbstractType<R> implements
|
||||
public final void bind(BindContext context) {
|
||||
throw new UnsupportedOperationException("UDTImpl cannot be used as a true QueryPart");
|
||||
}
|
||||
|
||||
/**
|
||||
* Subclasses may call this method to create {@link UDTField} objects that
|
||||
* are linked to this table.
|
||||
*
|
||||
* @param name The name of the field (case-sensitive!)
|
||||
* @param type The data type of the field
|
||||
*/
|
||||
protected static final <R extends UDTRecord<R>, T> UDTField<R, T> createField(String name, DataType<T> type, UDT<R> udt) {
|
||||
return new UDTFieldImpl<R, T>(name, type, udt);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user