diff --git a/jOOQ/src/main/java/org/jooq/Routine.java b/jOOQ/src/main/java/org/jooq/Routine.java index 520b2dd774..df50593785 100644 --- a/jOOQ/src/main/java/org/jooq/Routine.java +++ b/jOOQ/src/main/java/org/jooq/Routine.java @@ -89,6 +89,10 @@ import org.jooq.exception.DataAccessException; */ public interface Routine extends QueryPart { + // ------------------------------------------------------------------------- + // XXX: Meta information + // ------------------------------------------------------------------------- + /** * Get the routine schema */ @@ -143,15 +147,9 @@ public interface Routine extends QueryPart { */ List> getParameters(); - /** - * @return The routine's return value (if it is a function) - */ - T getReturnValue(); - - /** - * @return The routine's results (if available) - */ - List> getResults(); + // ------------------------------------------------------------------------- + // XXX: Call API + // ------------------------------------------------------------------------- /** * Execute the stored object using a {@link Configuration} object @@ -166,4 +164,28 @@ public interface Routine 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. + */ + void setValue(Parameter parameter, Z value); + + /** + * @return The routine's OUT value for an OUT parameter. + */ + Z getValue(Parameter parameter); + + /** + * @return The routine's return value (if it is a function) + */ + T getReturnValue(); + + /** + * @return The routine's results (if available) + */ + List> getResults(); } diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java index 4184e7b687..93e15c342b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java @@ -198,7 +198,7 @@ public abstract class AbstractRoutine extends AbstractQueryPart implements Ro // Initialise a routine call // ------------------------------------------------------------------------ - protected final void setNumber(Parameter parameter, Number value) { + protected final void setNumber(Parameter parameter, Number value) { setValue(parameter, Convert.convert(value, parameter.getType())); } @@ -206,7 +206,8 @@ public abstract class AbstractRoutine extends AbstractQueryPart implements Ro setField(parameter, value); } - protected final void setValue(Parameter parameter, Object value) { + @Override + public final void setValue(Parameter parameter, Z value) { setField(parameter, val(value, parameter.getDataType())); } @@ -645,8 +646,9 @@ public abstract class AbstractRoutine extends AbstractQueryPart implements Ro return results; } + @Override @SuppressWarnings("unchecked") - protected final Z getValue(Parameter parameter) { + public final Z getValue(Parameter parameter) { return (Z) outValues.get(parameter); }