package ch.ethz.syslab.telesto.server.db.procedure;
import java.sql.Types;
import ch.ethz.syslab.telesto.server.db.ReturnType;
public enum QueueProcedure implements StoredProcedure {
CREATE_QUEUE("create_queue", new int[] { Types.VARCHAR }, ReturnType.QUEUE_TABLE),
DELETE_QUEUE("delete_queue", new int[] { Types.INTEGER }, ReturnType.INTEGER),
GET_QUEUE_NAME("get_queue_name", new int[] { Types.INTEGER }, ReturnType.QUEUE_TABLE),
GET_QUEUE_ID("get_queue_id", new int[] { Types.VARCHAR }, ReturnType.QUEUE_TABLE),
LIST_QUEUES("list_queues", new int[0], ReturnType.QUEUE_TABLE),
GET_ACTIVE_QUEUES("get_active_queues", new int[] { Types.INTEGER }, ReturnType.QUEUE_TABLE);
private final String methodName;
private final int[] argumentTypes;
private final ReturnType returnType;
QueueProcedure(String methodName, int[] argumentTypes, ReturnType returnType) {
this.methodName = methodName;
this.argumentTypes = argumentTypes;
this.returnType = returnType;
}
@Override
public String getMethodName() {
return methodName;
}
@Override
public int getArgumentCount() {
return argumentTypes.length;
}
@Override
public int[] getArgumentTypes() {
return argumentTypes;
}
@Override
public ReturnType getReturnType() {
return returnType;
}
@Override
public boolean hasReturnValue() {
return returnType != null && !returnType.equals(ReturnType.NONE);
}
@Override
public boolean hasSingleReturnValue() {
return hasReturnValue() && returnType.isSingleResult();
}
}