[#3748] Add public Routine T getValue(Parameter<T>) and setValue(Parameter<T>, T) methods
This commit is contained in:
parent
cd58f9879a
commit
ab8b6a1e54
@ -89,6 +89,10 @@ import org.jooq.exception.DataAccessException;
|
||||
*/
|
||||
public interface Routine<T> extends QueryPart {
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// XXX: Meta information
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Get the routine schema
|
||||
*/
|
||||
@ -143,15 +147,9 @@ public interface Routine<T> extends QueryPart {
|
||||
*/
|
||||
List<Parameter<?>> getParameters();
|
||||
|
||||
/**
|
||||
* @return The routine's return value (if it is a function)
|
||||
*/
|
||||
T getReturnValue();
|
||||
|
||||
/**
|
||||
* @return The routine's results (if available)
|
||||
*/
|
||||
List<Result<Record>> getResults();
|
||||
// -------------------------------------------------------------------------
|
||||
// XXX: Call API
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Execute the stored object using a {@link Configuration} object
|
||||
@ -166,4 +164,28 @@ public interface Routine<T> extends QueryPart {
|
||||
* @throws DataAccessException if something went wrong executing the query
|
||||
*/
|
||||
int execute() throws DataAccessException;
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// XXX: Call data
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Set the routine's IN value for an IN parameter.
|
||||
*/
|
||||
<Z> void setValue(Parameter<Z> parameter, Z value);
|
||||
|
||||
/**
|
||||
* @return The routine's OUT value for an OUT parameter.
|
||||
*/
|
||||
<Z> Z getValue(Parameter<Z> parameter);
|
||||
|
||||
/**
|
||||
* @return The routine's return value (if it is a function)
|
||||
*/
|
||||
T getReturnValue();
|
||||
|
||||
/**
|
||||
* @return The routine's results (if available)
|
||||
*/
|
||||
List<Result<Record>> getResults();
|
||||
}
|
||||
|
||||
@ -198,7 +198,7 @@ public abstract class AbstractRoutine<T> extends AbstractQueryPart implements Ro
|
||||
// Initialise a routine call
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
protected final void setNumber(Parameter<? extends Number> parameter, Number value) {
|
||||
protected final <N extends Number> void setNumber(Parameter<N> parameter, Number value) {
|
||||
setValue(parameter, Convert.convert(value, parameter.getType()));
|
||||
}
|
||||
|
||||
@ -206,7 +206,8 @@ public abstract class AbstractRoutine<T> extends AbstractQueryPart implements Ro
|
||||
setField(parameter, value);
|
||||
}
|
||||
|
||||
protected final void setValue(Parameter<?> parameter, Object value) {
|
||||
@Override
|
||||
public final <Z> void setValue(Parameter<Z> parameter, Z value) {
|
||||
setField(parameter, val(value, parameter.getDataType()));
|
||||
}
|
||||
|
||||
@ -645,8 +646,9 @@ public abstract class AbstractRoutine<T> extends AbstractQueryPart implements Ro
|
||||
return results;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
protected final <Z> Z getValue(Parameter<Z> parameter) {
|
||||
public final <Z> Z getValue(Parameter<Z> parameter) {
|
||||
return (Z) outValues.get(parameter);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user