- java.lang.Object
-
- org.jooq.impl.AbstractRoutine<T>
-
- All Implemented Interfaces:
Serializable
,Attachable
,Named
,Qualified
,QueryPart
,QueryPartInternal
,Routine<T>
@Internal public abstract class AbstractRoutine<T> extends Object implements Routine<T>
A common base class for stored proceduresThis type is for JOOQ INTERNAL USE only. Do not reference directly
- Author:
- Lukas Eder
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractRoutine(String name, Schema schema)
protected
AbstractRoutine(String name, Schema schema, DataType<T> type)
protected
AbstractRoutine(String name, Schema schema, DataType<X> type, Binding<X,T> binding)
protected
AbstractRoutine(String name, Schema schema, DataType<X> type, Converter<X,T> converter)
protected
AbstractRoutine(String name, Schema schema, DataType<X> type, Converter<Y,T> converter, Binding<X,Y> binding)
protected
AbstractRoutine(String name, Schema schema, Package pkg)
protected
AbstractRoutine(String name, Schema schema, Package pkg, DataType<T> type)
protected
AbstractRoutine(String name, Schema schema, Package pkg, DataType<X> type, Binding<X,T> binding)
protected
AbstractRoutine(String name, Schema schema, Package pkg, DataType<X> type, Converter<X,T> converter)
protected
AbstractRoutine(String name, Schema schema, Package pkg, DataType<X> type, Converter<Y,T> converter, Binding<X,Y> binding)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
accept(Context<?> ctx)
protected void
addInOutParameter(Parameter<?> parameter)
protected void
addInParameter(Parameter<?> parameter)
protected void
addOutParameter(Parameter<?> parameter)
AggregateFunction<T>
asAggregateFunction()
Field<T>
asField()
Field<T>
asField(String alias)
void
attach(Configuration c)
Attach this object to a newConfiguration
.void
bind(BindContext context)
Deprecated.- 3.4.0 - [#2694] - UseQueryPartInternal.accept(Context)
instead.Clause[]
clauses(Context<?> ctx)
TheClause
s that are represented by this query part.Configuration
configuration()
protected DSLContext
create()
Deprecated.- 3.11.0 - [#6722] - UseAttachable.configuration()
andConfiguration.dsl()
instead.protected DSLContext
create(Configuration configuration)
Deprecated.- 3.11.0 - [#6722] - UseAttachable.configuration()
andConfiguration.dsl()
instead.protected DSLContext
create(Context<?> ctx)
Deprecated.- 3.11.0 - [#6722] - UseAttachable.configuration()
andConfiguration.dsl()
instead.protected static <T> Parameter<T>
createParameter(String name, DataType<T> type)
Deprecated.- Please, re-generate your routine code.protected static <T> Parameter<T>
createParameter(String name, DataType<T> type, boolean isDefaulted)
Deprecated.- Please, re-generate your routine code.protected static <T> Parameter<T>
createParameter(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed)
Deprecated.- Please, re-generate your routine code.protected static <T,U>
Parameter<U>createParameter(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed, Binding<T,U> binding)
Deprecated.- Please, re-generate your routine code.protected static <T,U>
Parameter<U>createParameter(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed, Converter<T,U> converter)
Deprecated.- Please, re-generate your routine code.protected static <T,X,U>
Parameter<U>createParameter(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed, Converter<X,U> converter, Binding<T,X> binding)
Deprecated.- Please, re-generate your routine code.protected static <T,U>
Parameter<U>createParameter(String name, DataType<T> type, boolean isDefaulted, Binding<T,U> binding)
Deprecated.- Please, re-generate your routine code.protected static <T,U>
Parameter<U>createParameter(String name, DataType<T> type, boolean isDefaulted, Converter<T,U> converter)
Deprecated.- Please, re-generate your routine code.protected static <T,X,U>
Parameter<U>createParameter(String name, DataType<T> type, boolean isDefaulted, Converter<X,U> converter, Binding<T,X> binding)
Deprecated.- Please, re-generate your routine code.boolean
declaresCTE()
Subclasses may override thisboolean
declaresFields()
Subclasses may override thisboolean
declaresTables()
Subclasses may override thisboolean
declaresWindows()
Subclasses may override thisvoid
detach()
Detach this object from its currentConfiguration
.boolean
equals(Object that)
Check whether thisQueryPart
can be considered equal to anotherQueryPart
.int
execute()
Execute the stored object on an underlying connectionint
execute(Configuration c)
Execute the stored object using aConfiguration
objectboolean
generatesCast()
Subclasses may override this<Z> Z
get(Parameter<Z> parameter)
Catalog
getCatalog()
Get the object's catalog.String
getComment()
The comment on this object.Comment
getCommentPart()
The comment on this object as aQueryPart
.List<Parameter<?>>
getInParameters()
A list of IN parameters passed to the stored procedure as argument.<Z> Z
getInValue(Parameter<Z> parameter)
protected Map<Parameter<?>,Field<?>>
getInValues()
String
getName()
The unqualified name of this object.List<Parameter<?>>
getOutParameters()
A list of OUT parameters passed to the stored procedure as argument.Package
getPackage()
The container package of this stored procedure or function.List<Parameter<?>>
getParameters()
Name
getQualifiedName()
The qualified name of this object.Results
getResults()
Parameter<T>
getReturnParameter()
The parameter representing this routine'sRoutine.getReturnValue()
T
getReturnValue()
Schema
getSchema()
Get the object's schema.Name
getUnqualifiedName()
The unqualified name of this object.<Z> Z
getValue(Parameter<Z> parameter)
int
hashCode()
Generate a hash code from thisQueryPart
.protected boolean
isOverloaded()
protected boolean
isPipelined()
boolean
rendersContent(Context<?> ctx)
Subclasses may override this<Z> void
set(Parameter<Z> parameter, Z value)
Set the routine's IN value for an IN parameter.protected void
setField(Parameter<?> parameter, Field<?> value)
protected void
setNumber(Parameter<? extends Number> parameter, Field<? extends Number> value)
protected <N extends Number>
voidsetNumber(Parameter<N> parameter, Number value)
protected void
setOverloaded(boolean overloaded)
protected void
setPipelined(boolean pipelined)
protected void
setPLSQLBooleanParameter(Parameter<?> parameter)
protected void
setReturnParameter(Parameter<T> parameter)
protected void
setSyntheticReturnParameter(Parameter<T> parameter)
<Z> void
setValue(Parameter<Z> parameter, Z value)
Set the routine's IN value for an IN parameter.void
toSQL(RenderContext context)
Deprecated.- 3.4.0 - [#2694] - UseQueryPartInternal.accept(Context)
instead.String
toString()
Render a SQL string representation of thisQueryPart
.protected DataAccessException
translate(String sql, SQLException e)
Internal convenience method-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.jooq.Named
getComment, getCommentPart, getName, getQualifiedName, getUnqualifiedName
-
-
-
-
Constructor Detail
-
AbstractRoutine
protected AbstractRoutine(String name, Schema schema, DataType<X> type, Converter<X,T> converter)
-
AbstractRoutine
protected AbstractRoutine(String name, Schema schema, DataType<X> type, Binding<X,T> binding)
-
AbstractRoutine
protected AbstractRoutine(String name, Schema schema, DataType<X> type, Converter<Y,T> converter, Binding<X,Y> binding)
-
AbstractRoutine
protected AbstractRoutine(String name, Schema schema, Package pkg, DataType<T> type)
-
AbstractRoutine
protected AbstractRoutine(String name, Schema schema, Package pkg, DataType<X> type, Converter<X,T> converter)
-
AbstractRoutine
protected AbstractRoutine(String name, Schema schema, Package pkg, DataType<X> type, Binding<X,T> binding)
-
-
Method Detail
-
setNumber
protected final void setNumber(Parameter<? extends Number> parameter, Field<? extends Number> value)
-
setValue
public final <Z> void setValue(Parameter<Z> parameter, Z value)
Description copied from interface:Routine
Set the routine's IN value for an IN parameter.
-
set
public final <Z> void set(Parameter<Z> parameter, Z value)
Description copied from interface:Routine
Set the routine's IN value for an IN parameter.
-
attach
public final void attach(Configuration c)
Description copied from interface:Attachable
Attach this object to a newConfiguration
.- Specified by:
attach
in interfaceAttachable
- Parameters:
c
- A configuration ornull
, if you wish to detach thisAttachable
from its previous configuration.
-
detach
public final void detach()
Description copied from interface:Attachable
Detach this object from its currentConfiguration
.This is the same as calling
attach(null)
.- Specified by:
detach
in interfaceAttachable
-
configuration
public final Configuration configuration()
Description copied from interface:Attachable
- Specified by:
configuration
in interfaceAttachable
-
execute
public final int execute(Configuration c)
Description copied from interface:Routine
Execute the stored object using aConfiguration
object
-
execute
public final int execute()
Description copied from interface:Routine
Execute the stored object on an underlying connection
-
clauses
public final Clause[] clauses(Context<?> ctx)
Description copied from interface:QueryPartInternal
TheClause
s that are represented by this query part.QueryPart
s can specify severalClause
s for which an event will be emittedbefore
(in forward order) andafter
(in reverse order) visiting the the query part throughContext.visit(QueryPart)
This method is for JOOQ INTERNAL USE only. Do not reference directly
- Specified by:
clauses
in interfaceQueryPartInternal
- Returns:
- The
Clause
s represented by this query part ornull
or an empty array if this query part does not represent a clause.
-
accept
public void accept(Context<?> ctx)
Description copied from interface:QueryPartInternal
ThisQueryPart
canaccept
aContext
object in order to render a SQL string or to bind its variables.- Specified by:
accept
in interfaceQueryPartInternal
-
getReturnValue
public final T getReturnValue()
- Specified by:
getReturnValue
in interfaceRoutine<T>
- Returns:
- The routine's return value (if it is a function)
-
getResults
public final Results getResults()
- Specified by:
getResults
in interfaceRoutine<T>
- Returns:
- The routine's results (if available)
-
getValue
public final <Z> Z getValue(Parameter<Z> parameter)
-
get
public final <Z> Z get(Parameter<Z> parameter)
-
getInValue
public final <Z> Z getInValue(Parameter<Z> parameter)
- Specified by:
getInValue
in interfaceRoutine<T>
- Returns:
- The routine's IN value for an IN parameter.
-
getOutParameters
public final List<Parameter<?>> getOutParameters()
Description copied from interface:Routine
A list of OUT parameters passed to the stored procedure as argument. This list contains all parameters that are either OUT or INOUT in their respective order of appearance inRoutine.getParameters()
.- Specified by:
getOutParameters
in interfaceRoutine<T>
- Returns:
- The list of out parameters
- See Also:
Routine.getParameters()
-
getInParameters
public final List<Parameter<?>> getInParameters()
Description copied from interface:Routine
A list of IN parameters passed to the stored procedure as argument. This list contains all parameters that are either IN or INOUT in their respective order of appearance inRoutine.getParameters()
.- Specified by:
getInParameters
in interfaceRoutine<T>
- Returns:
- The list of in parameters
- See Also:
Routine.getParameters()
-
getParameters
public final List<Parameter<?>> getParameters()
- Specified by:
getParameters
in interfaceRoutine<T>
- Returns:
- A list of parameters passed to the stored object as argument
-
getCatalog
public final Catalog getCatalog()
Description copied from interface:Qualified
Get the object's catalog.- Specified by:
getCatalog
in interfaceQualified
-
getSchema
public final Schema getSchema()
Description copied from interface:Qualified
Get the object's schema.
-
getPackage
@Pro public final Package getPackage()
Description copied from interface:Routine
The container package of this stored procedure or function.This is only supported in the
SQLDialect.ORACLE
dialect.- Specified by:
getPackage
in interfaceRoutine<T>
- Returns:
- The container package of this object, or
null
if there is no such container.
-
getReturnParameter
public final Parameter<T> getReturnParameter()
Description copied from interface:Routine
The parameter representing this routine'sRoutine.getReturnValue()
- Specified by:
getReturnParameter
in interfaceRoutine<T>
- Returns:
- The return parameter or
null
if this routine doesn't have a return value. - See Also:
Routine.getParameters()
-
setOverloaded
protected final void setOverloaded(boolean overloaded)
-
isOverloaded
protected final boolean isOverloaded()
-
setPipelined
@Pro protected final void setPipelined(boolean pipelined)
-
isPipelined
@Pro protected final boolean isPipelined()
-
addInParameter
protected final void addInParameter(Parameter<?> parameter)
-
addInOutParameter
protected final void addInOutParameter(Parameter<?> parameter)
-
addOutParameter
protected final void addOutParameter(Parameter<?> parameter)
-
setSyntheticReturnParameter
@Pro protected final void setSyntheticReturnParameter(Parameter<T> parameter)
-
setPLSQLBooleanParameter
@Pro protected final void setPLSQLBooleanParameter(Parameter<?> parameter)
-
asAggregateFunction
public final AggregateFunction<T> asAggregateFunction()
-
createParameter
@Deprecated protected static final <T> Parameter<T> createParameter(String name, DataType<T> type)
Deprecated.- Please, re-generate your routine code.Subclasses may call this method to createUDTField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the field
-
createParameter
@Deprecated protected static final <T> Parameter<T> createParameter(String name, DataType<T> type, boolean isDefaulted)
Deprecated.- Please, re-generate your routine code.Subclasses may call this method to createUDTField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the fieldisDefaulted
- Whether the parameter is defaulted (seeParameter.isDefaulted()
-
createParameter
@Deprecated protected static final <T,U> Parameter<U> createParameter(String name, DataType<T> type, boolean isDefaulted, Converter<T,U> converter)
Deprecated.- Please, re-generate your routine code.Subclasses may call this method to createUDTField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the fieldisDefaulted
- Whether the parameter is defaulted (seeParameter.isDefaulted()
-
createParameter
@Deprecated protected static final <T,U> Parameter<U> createParameter(String name, DataType<T> type, boolean isDefaulted, Binding<T,U> binding)
Deprecated.- Please, re-generate your routine code.Subclasses may call this method to createUDTField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the fieldisDefaulted
- Whether the parameter is defaulted (seeParameter.isDefaulted()
-
createParameter
@Deprecated protected static final <T,X,U> Parameter<U> createParameter(String name, DataType<T> type, boolean isDefaulted, Converter<X,U> converter, Binding<T,X> binding)
Deprecated.- Please, re-generate your routine code.Subclasses may call this method to createUDTField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the fieldisDefaulted
- Whether the parameter is defaulted (seeParameter.isDefaulted()
-
createParameter
@Deprecated protected static final <T> Parameter<T> createParameter(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed)
Deprecated.- Please, re-generate your routine code.Subclasses may call this method to createUDTField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the fieldisDefaulted
- Whether the parameter is defaulted (seeParameter.isDefaulted()
isUnnamed
- Whether the parameter is unnamed (seeParameter.isUnnamed()
.
-
createParameter
@Deprecated protected static final <T,U> Parameter<U> createParameter(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed, Converter<T,U> converter)
Deprecated.- Please, re-generate your routine code.Subclasses may call this method to createUDTField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the fieldisDefaulted
- Whether the parameter is defaulted (seeParameter.isDefaulted()
isUnnamed
- Whether the parameter is unnamed (seeParameter.isUnnamed()
.
-
createParameter
@Deprecated protected static final <T,U> Parameter<U> createParameter(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed, Binding<T,U> binding)
Deprecated.- Please, re-generate your routine code.Subclasses may call this method to createUDTField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the fieldisDefaulted
- Whether the parameter is defaulted (seeParameter.isDefaulted()
isUnnamed
- Whether the parameter is unnamed (seeParameter.isUnnamed()
.
-
createParameter
@Deprecated protected static final <T,X,U> Parameter<U> createParameter(String name, DataType<T> type, boolean isDefaulted, boolean isUnnamed, Converter<X,U> converter, Binding<T,X> binding)
Deprecated.- Please, re-generate your routine code.Subclasses may call this method to createUDTField
objects that are linked to this table.- Parameters:
name
- The name of the field (case-sensitive!)type
- The data type of the fieldisDefaulted
- Whether the parameter is defaulted (seeParameter.isDefaulted()
isUnnamed
- Whether the parameter is unnamed (seeParameter.isUnnamed()
.
-
getName
public final String getName()
Description copied from interface:Named
The unqualified name of this object.
-
getQualifiedName
public Name getQualifiedName()
Description copied from interface:Named
The qualified name of this object.- Specified by:
getQualifiedName
in interfaceNamed
-
getUnqualifiedName
public final Name getUnqualifiedName()
Description copied from interface:Named
The unqualified name of this object.- Specified by:
getUnqualifiedName
in interfaceNamed
-
getComment
public final String getComment()
Description copied from interface:Named
The comment on this object.This is the same as calling
Named.getCommentPart()
and thenComment.getComment()
.- Specified by:
getComment
in interfaceNamed
-
getCommentPart
public final Comment getCommentPart()
Description copied from interface:Named
The comment on this object as aQueryPart
.- Specified by:
getCommentPart
in interfaceNamed
-
hashCode
public int hashCode()
Description copied from interface:QueryPart
Generate a hash code from thisQueryPart
.In general,
QueryPart
hash codes are the same as the hash codes generated fromQueryPart.toString()
. This guarantees consistent behaviour withQueryPart.equals(Object)
Some
QueryPart
implementations may choose to override this behaviour for improved performance, asQueryPart.toString()
is an expensive operation, if called many times.
-
equals
public boolean equals(Object that)
Description copied from interface:QueryPart
Check whether thisQueryPart
can be considered equal to anotherQueryPart
.In general,
QueryPart
equality is defined in terms ofQueryPart.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, asQueryPart.toString()
is an expensive operation, if called many times.
-
toSQL
@Deprecated public final void toSQL(RenderContext context)
Deprecated.- 3.4.0 - [#2694] - UseQueryPartInternal.accept(Context)
instead.Description copied from interface:QueryPartInternal
Render thisQueryPart
to a SQL string contained incontext.sql()
. Thecontext
will contain additional information about how to render thisQueryPart
, e.g. whether thisQueryPart
should be rendered as a declaration or reference, whether thisQueryPart
's contained bind variables should be inlined or replaced by'?'
, etc.- Specified by:
toSQL
in interfaceQueryPartInternal
-
bind
@Deprecated public final void bind(BindContext context) throws DataAccessException
Deprecated.- 3.4.0 - [#2694] - UseQueryPartInternal.accept(Context)
instead.Description copied from interface:QueryPartInternal
Bind all parameters of thisQueryPart
to a PreparedStatementThis method is for JOOQ INTERNAL USE only. Do not reference directly
- Specified by:
bind
in interfaceQueryPartInternal
- Parameters:
context
- The context holding the next bind index and other information for variable binding- Throws:
DataAccessException
- If something went wrong while binding a variable
-
rendersContent
public boolean rendersContent(Context<?> ctx)
Subclasses may override this- Specified by:
rendersContent
in interfaceQueryPartInternal
-
declaresFields
public boolean declaresFields()
Subclasses may override this- Specified by:
declaresFields
in interfaceQueryPartInternal
-
declaresTables
public boolean declaresTables()
Subclasses may override this- Specified by:
declaresTables
in interfaceQueryPartInternal
-
declaresWindows
public boolean declaresWindows()
Subclasses may override this- Specified by:
declaresWindows
in interfaceQueryPartInternal
-
declaresCTE
public boolean declaresCTE()
Subclasses may override this- Specified by:
declaresCTE
in interfaceQueryPartInternal
-
generatesCast
public boolean generatesCast()
Subclasses may override this- Specified by:
generatesCast
in interfaceQueryPartInternal
-
toString
public String toString()
Description copied from interface:QueryPart
Render a SQL string representation of thisQueryPart
.For improved debugging, this renders a SQL string of this
QueryPart
with inlined bind variables. If thisQueryPart
isAttachable
, then the attachedConfiguration
may be used for rendering the SQL string, includingSQLDialect
andSettings
. Do note that mostQueryPart
instances are not attached to aConfiguration
, and thus there is no guarantee that the SQL string will make sense in the context of a specific database.
-
create
@Deprecated protected final DSLContext create()
Deprecated.- 3.11.0 - [#6722] - UseAttachable.configuration()
andConfiguration.dsl()
instead.Internal convenience method
-
create
@Deprecated protected final DSLContext create(Configuration configuration)
Deprecated.- 3.11.0 - [#6722] - UseAttachable.configuration()
andConfiguration.dsl()
instead.Internal convenience method
-
create
@Deprecated protected final DSLContext create(Context<?> ctx)
Deprecated.- 3.11.0 - [#6722] - UseAttachable.configuration()
andConfiguration.dsl()
instead.Internal convenience method
-
translate
protected final DataAccessException translate(String sql, SQLException e)
Internal convenience method
-
-