public class UDTImpl<R extends UDTRecord<R>> extends java.lang.Object implements UDT<R>
This type is for JOOQ INTERNAL USE only. Do not reference directly
| Constructor and Description |
|---|
UDTImpl(java.lang.String name,
Schema schema) |
UDTImpl(java.lang.String name,
Schema schema,
Package pkg) |
UDTImpl(java.lang.String name,
Schema schema,
Package pkg,
boolean synthetic) |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(Context<?> ctx)
|
void |
bind(BindContext context)
Deprecated.
- 3.4.0 - [#2694] - Use
QueryPartInternal.accept(Context) instead. |
Clause[] |
clauses(Context<?> ctx)
The
Clauses that are represented by this query part. |
protected DSLContext |
create()
Internal convenience method
|
protected DSLContext |
create(Configuration configuration)
Internal convenience method
|
protected DSLContext |
create(Context<?> ctx)
Internal convenience method
|
protected static <R extends UDTRecord<R>,T> |
createField(java.lang.String name,
DataType<T> type,
UDT<R> udt)
Subclasses may call this method to create
UDTField objects that
are linked to this table. |
protected static <R extends UDTRecord<R>,T> |
createField(java.lang.String name,
DataType<T> type,
UDT<R> udt,
java.lang.String comment)
Subclasses may call this method to create
UDTField objects that
are linked to this table. |
protected static <R extends UDTRecord<R>,T,U> |
createField(java.lang.String name,
DataType<T> type,
UDT<R> udt,
java.lang.String comment,
Binding<T,U> binding)
Subclasses may call this method to create
UDTField objects that
are linked to this table. |
protected static <R extends UDTRecord<R>,T,U> |
createField(java.lang.String name,
DataType<T> type,
UDT<R> udt,
java.lang.String comment,
Converter<T,U> converter)
Subclasses may call this method to create
UDTField objects that
are linked to this table. |
protected static <R extends UDTRecord<R>,T,X,U> |
createField(java.lang.String name,
DataType<T> type,
UDT<R> udt,
java.lang.String comment,
Converter<X,U> converter,
Binding<T,X> binding)
Subclasses may call this method to create
UDTField objects that
are linked to this table. |
boolean |
declaresCTE()
Subclasses may override this
|
boolean |
declaresFields()
Subclasses may override this
|
boolean |
declaresTables()
Subclasses may override this
|
boolean |
declaresWindows()
Subclasses may override this
|
boolean |
equals(java.lang.Object that)
Check whether this
QueryPart can be considered equal to
another QueryPart. |
<T> Field<T> |
field(Field<T> field)
Get a specific field from this UDT.
|
Field<?> |
field(int index)
Get a specific field from this UDT.
|
Field<?> |
field(Name fieldName)
Get a specific field from this UDT.
|
Field<?> |
field(java.lang.String string)
Get a specific field from this UDT.
|
Field<?>[] |
fields()
Get all fields from this UDT.
|
Field<?>[] |
fields(Field<?>... f)
Get all fields from this UDT, providing some fields.
|
Field<?>[] |
fields(int... fieldIndexes)
Get all fields from this UDT, providing some field indexes.
|
Field<?>[] |
fields(Name... fieldNames)
Get all fields from this UDT, providing some field names.
|
Field<?>[] |
fields(java.lang.String... fieldNames)
Get all fields from this UDT, providing some field names.
|
Row |
fieldsRow()
Get this UDT's fields as a
Row. |
java.util.stream.Stream<Field<?>> |
fieldStream()
Get this table's fields as a
Stream. |
boolean |
generatesCast()
Subclasses may override this
|
Catalog |
getCatalog()
Get the UDT catalog.
|
DataType<R> |
getDataType()
The UDT's data type as known to the database.
|
java.lang.String |
getName()
The name of this UDT.
|
Package |
getPackage()
Get the UDT package.
|
java.lang.Class<R> |
getRecordType()
Subclasses must override this method if they use the generic type
parameter
Record |
Schema |
getSchema()
Get the UDT schema.
|
int |
hashCode()
Generate a hash code from this
QueryPart. |
boolean |
isSQLUsable()
Whether this data type can be used from SQL statements.
|
boolean |
isSynthetic()
Whether this data type is a synthetic, structural UDT type.
|
R |
newRecord()
Create a new
Record of this UDT's type. |
void |
toSQL(RenderContext context)
Deprecated.
- 3.4.0 - [#2694] - Use
QueryPartInternal.accept(Context) instead. |
java.lang.String |
toString()
Render a SQL string representation of this
QueryPart. |
protected DataAccessException |
translate(java.lang.String sql,
java.sql.SQLException e)
Internal convenience method
|
public UDTImpl(java.lang.String name,
Schema schema)
public final Catalog getCatalog()
UDTgetCatalog in interface UDT<R extends UDTRecord<R>>public final Package getPackage()
UDTgetPackage in interface UDT<R extends UDTRecord<R>>public final java.lang.String getName()
UDTpublic final Row fieldsRow()
UDTRow.public final java.util.stream.Stream<Field<?>> fieldStream()
UDTStream.fieldStream in interface UDT<R extends UDTRecord<R>>public final <T> Field<T> field(Field<T> field)
UDTThis will return:
null otherwise.
public final Field<?> field(java.lang.String string)
UDTpublic final Field<?> field(Name fieldName)
UDTpublic final Field<?> field(int index)
UDTpublic final Field<?>[] fields()
UDTpublic final Field<?>[] fields(Field<?>... f)
UDTpublic final Field<?>[] fields(java.lang.String... fieldNames)
UDTpublic final Field<?>[] fields(Name... fieldNames)
UDTpublic final Field<?>[] fields(int... fieldIndexes)
UDTpublic java.lang.Class<R> getRecordType()
RecordgetRecordType in interface UDT<R extends UDTRecord<R>>public final boolean isSQLUsable()
UDTisSQLUsable in interface UDT<R extends UDTRecord<R>>public final boolean isSynthetic()
UDT
This is true for example:
TAB%ROWTYPE references, which are synthetic
PL/SQL RECORD types in PL/SQL.isSynthetic in interface UDT<R extends UDTRecord<R>>public final R newRecord()
UDTRecord of this UDT's type.public final DataType<R> getDataType()
UDTgetDataType in interface UDT<R extends UDTRecord<R>>public final void accept(Context<?> ctx)
QueryPartInternalQueryPart can accept a Context object
in order to render a SQL string or to bind its variables.accept in interface QueryPartInternalpublic final Clause[] clauses(Context<?> ctx)
QueryPartInternalClauses that are represented by this query part.
QueryParts can specify several Clauses for which an
event will be emitted before (in forward
order) and after (in reverse order) visiting
the the query part through Context.visit(QueryPart)
This method is for JOOQ INTERNAL USE only. Do not reference directly
clauses in interface QueryPartInternalClauses represented by this query part or
null or an empty array if this query part does not
represent a clause.protected static final <R extends UDTRecord<R>,T> UDTField<R,T> createField(java.lang.String name, DataType<T> type, UDT<R> udt)
UDTField objects that
are linked to this table.name - The name of the field (case-sensitive!)type - The data type of the fieldprotected static final <R extends UDTRecord<R>,T> UDTField<R,T> createField(java.lang.String name, DataType<T> type, UDT<R> udt, java.lang.String comment)
UDTField objects that
are linked to this table.name - The name of the field (case-sensitive!)type - The data type of the fieldprotected static final <R extends UDTRecord<R>,T,U> UDTField<R,U> createField(java.lang.String name, DataType<T> type, UDT<R> udt, java.lang.String comment, Converter<T,U> converter)
UDTField objects that
are linked to this table.name - The name of the field (case-sensitive!)type - The data type of the fieldprotected static final <R extends UDTRecord<R>,T,U> UDTField<R,U> createField(java.lang.String name, DataType<T> type, UDT<R> udt, java.lang.String comment, Binding<T,U> binding)
UDTField objects that
are linked to this table.name - The name of the field (case-sensitive!)type - The data type of the fieldprotected static final <R extends UDTRecord<R>,T,X,U> UDTField<R,U> createField(java.lang.String name, DataType<T> type, UDT<R> udt, java.lang.String comment, Converter<X,U> converter, Binding<T,X> binding)
UDTField objects that
are linked to this table.name - The name of the field (case-sensitive!)type - The data type of the fieldpublic int hashCode()
QueryPartQueryPart.
In general, QueryPart hash codes are the same as the hash
codes generated from QueryPart.toString(). This guarantees consistent
behaviour with QueryPart.equals(Object)
Some QueryPart implementations may choose to override this
behaviour for improved performance, as QueryPart.toString() is an
expensive operation, if called many times.
@Deprecated public final void toSQL(RenderContext context)
QueryPartInternal.accept(Context) instead.QueryPartInternalQueryPart to a SQL string contained in
context.sql(). The context will contain
additional information about how to render this QueryPart,
e.g. whether this QueryPart should be rendered as a
declaration or reference, whether this QueryPart's contained
bind variables should be inlined or replaced by '?', etc.toSQL in interface QueryPartInternal@Deprecated public final void bind(BindContext context) throws DataAccessException
QueryPartInternal.accept(Context) instead.QueryPartInternalQueryPart to a PreparedStatement
This method is for JOOQ INTERNAL USE only. Do not reference directly
bind in interface QueryPartInternalcontext - The context holding the next bind index and other information
for variable bindingDataAccessException - If something went wrong while binding a
variablepublic boolean declaresFields()
declaresFields in interface QueryPartInternalpublic boolean declaresTables()
declaresTables in interface QueryPartInternalpublic boolean declaresWindows()
declaresWindows in interface QueryPartInternalpublic boolean declaresCTE()
declaresCTE in interface QueryPartInternalpublic boolean generatesCast()
generatesCast in interface QueryPartInternalpublic boolean equals(java.lang.Object that)
QueryPartQueryPart can be considered equal to
another QueryPart.
In general, QueryPart equality is defined in terms of
QueryPart.toString() equality. In other words, two query parts are
considered equal if their rendered SQL (with inlined bind variables) is
equal. This means that the two query parts do not necessarily have to be
of the same type.
Some QueryPart implementations may choose to override this
behaviour for improved performance, as QueryPart.toString() is an
expensive operation, if called many times.
public java.lang.String toString()
QueryPartQueryPart.
For improved debugging, this renders a SQL string of this
QueryPart with inlined bind variables. If this
QueryPart is Attachable, then the attached
Configuration may be used for rendering the SQL string, including
SQLDialect and Settings. Do note that most
QueryPart instances are not attached to a
Configuration, and thus there is no guarantee that the SQL string
will make sense in the context of a specific database.
If you wish to gain more control over the concrete SQL rendering of this
QueryPart, use DSLContext.renderContext() to obtain
a configurable render context for SQL rendering.
protected final DSLContext create()
protected final DSLContext create(Configuration configuration)
protected final DSLContext create(Context<?> ctx)
protected final DataAccessException translate(java.lang.String sql, java.sql.SQLException e)
Copyright © 2018. All Rights Reserved.