T
- type of the result of this DynamicMultiOperationOperation<T>
, OutOperation<T>
, ParameterizedOperation<T>
public interface DynamicMultiOperation<T> extends OutOperation<T>
Operation
that returns one or more results in
addition to the result defined by the Operation
. A DynamicMultiOperation
is a
multi-operation where the number and types of the results are determined at
execution.
NOTE: In general one way to do things is sufficient however the API provides
two ways to handle multiple results. This way, the dynamic way, is required
because the number and type of results cannot always be known in advance. The
static way is also provided because it is much easier to use when the number
and type of results is known. The improvement in ease of use outweighs the
duplication IMO. If necessary one or the other can be eliminated. Eliminating
dynamic reduces functionality. Eliminating static reduces ease of use in what
I believe to be a common case.Modifier and Type | Method | Description |
---|---|---|
DynamicMultiOperation<T> |
apply(java.util.function.Function<Result.OutParameterMap,? extends T> processor) |
Provide a processor that will handle the result of executing the SQL.
|
DynamicMultiOperation<T> |
onCount(java.util.function.BiConsumer<java.lang.Integer,CountOperation<T>> handler) |
Provides a handler for count results.
|
DynamicMultiOperation<T> |
onError(java.util.function.BiConsumer<java.lang.Integer,java.lang.Throwable> handler) |
Provides an error handler for this
Operation . |
DynamicMultiOperation<T> |
onError(java.util.function.Consumer<java.lang.Throwable> handler) |
Provides an error handler for this
Operation . |
DynamicMultiOperation<T> |
onRows(java.util.function.BiConsumer<java.lang.Integer,RowOperation<T>> handler) |
Provides a handler for row sequence results.
|
DynamicMultiOperation<T> |
outParameter(java.lang.String id,
SqlType type) |
Register an out parameter identified by the given id.
|
DynamicMultiOperation<T> |
set(java.lang.String id,
java.lang.Object value) |
Set a parameter value.
|
DynamicMultiOperation<T> |
set(java.lang.String id,
java.lang.Object value,
SqlType type) |
Set a parameter value.
|
DynamicMultiOperation<T> |
set(java.lang.String id,
java.util.concurrent.CompletionStage<?> source) |
Set a parameter value to be the future value of a
CompletionStage . |
DynamicMultiOperation<T> |
set(java.lang.String id,
java.util.concurrent.CompletionStage<?> source,
SqlType type) |
Set a parameter value to be the value of a
CompletionStage . |
DynamicMultiOperation<T> |
timeout(java.time.Duration minTime) |
The minimum time before this
Operation might be canceled
automatically. |
DynamicMultiOperation<T> onCount(java.util.function.BiConsumer<java.lang.Integer,CountOperation<T>> handler)
handler
- not nulljava.lang.IllegalStateException
- if the CountOperation has not been submitted
when the call to the handler returnsDynamicMultiOperation<T> onRows(java.util.function.BiConsumer<java.lang.Integer,RowOperation<T>> handler)
handler
- java.lang.IllegalStateException
- if the RowOperation has not been submitted
when the call to the handler returnsDynamicMultiOperation<T> onError(java.util.function.BiConsumer<java.lang.Integer,java.lang.Throwable> handler)
Operation
. The provided handler
is called for each error that occurs. When called the first argument is the
number of results, including errors, that preceeded the current error. The
second argument is a Throwable
corresponding to the error. When the
handler returns processing of the DynamicMultiOperation results continues.
Only one onError method may be called.handler
- a BiConsumer that handles an errorjava.lang.IllegalStateException
- if any onError method was called previouslyDynamicMultiOperation<T> onError(java.util.function.Consumer<java.lang.Throwable> handler)
DynamicMultiOperation<T> outParameter(java.lang.String id, SqlType type)
OutOperation
outParameter
in interface OutOperation<T>
id
- the parameter identifiertype
- the SQL type of the value of the parameterOutOperation
DynamicMultiOperation<T> apply(java.util.function.Function<Result.OutParameterMap,? extends T> processor)
OutOperation
apply
in interface OutOperation<T>
processor
- the Function
that will be called to process the result of
this OutOperation
OutOperation
DynamicMultiOperation<T> set(java.lang.String id, java.lang.Object value)
ParameterizedOperation
Operation
is completed.set
in interface OutOperation<T>
set
in interface ParameterizedOperation<T>
id
- the identifier of the parameter marker to be setvalue
- the value the parameter is to be set toOperation
DynamicMultiOperation<T> set(java.lang.String id, java.lang.Object value, SqlType type)
ParameterizedOperation
Operation
is completed.set
in interface OutOperation<T>
set
in interface ParameterizedOperation<T>
id
- the identifier of the parameter marker to be setvalue
- the value the parameter is to be set totype
- the SQL type of the value to send to the databaseDynamicMultiOperation<T> set(java.lang.String id, java.util.concurrent.CompletionStage<?> source)
ParameterizedOperation
CompletionStage
. The Operation
will
not be executed until the CompletionStage
is
completed. This method allows submitting Operation
s that depend on
the result of previous Operation
s rather than requiring that the
dependent Operation
be submitted only when the previous
Operation
completes. Use a default SQL type determined by the type
of the value of the CompletionStage
argument.set
in interface OutOperation<T>
set
in interface ParameterizedOperation<T>
id
- the identifier of the parameter marker to be setsource
- the CompletionStage
that
provides the value the parameter is to be set toOperation
DynamicMultiOperation<T> set(java.lang.String id, java.util.concurrent.CompletionStage<?> source, SqlType type)
ParameterizedOperation
CompletionStage
. The Operation
will
not be executed until the CompletionStage
is
completed. This method allows submitting Operation
s that depend on
the result of previous Operation
s rather than requiring that the
dependent Operation
be submitted only when the previous
Operation
completes.set
in interface OutOperation<T>
set
in interface ParameterizedOperation<T>
id
- the identifier of the parameter marker to be setsource
- the CompletionStage
that provides
the value the parameter is to be set totype
- the SQL type of the value to send to the databaseOperation
DynamicMultiOperation<T> timeout(java.time.Duration minTime)
Operation
Operation
might be canceled
automatically. The default value is forever. The time is
counted from the beginning of Operation execution. The Operation will not
be canceled before minTime
after the beginning of execution.
Some time at least minTime
after the beginning of execution,
an attempt will be made to cancel the Operation
if it has not yet
completed. Implementations are encouraged to attempt to cancel within a
reasonable time, though what is reasonable is implementation dependent.Report a bug or suggest an enhancement
For further API reference and developer documentation see the Java SE Documentation, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2017, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
All rights reserved. Use is subject to license terms and the documentation redistribution policy.
DRAFT JDBC 4.4 EA