package ch.ethz.syslab.telesto.server.db.procedure; import java.sql.Types; import ch.ethz.syslab.telesto.server.db.ReturnType; public enum ClientProcedure implements StoredProcedure { IDENTIFY("identify", new int[] { Types.INTEGER }, ReturnType.CLIENT_TABLE), REQUEST_ID("request_id", new int[] { Types.VARCHAR, Types.SMALLINT }, ReturnType.INTEGER), DELETE_CLIENT("delete_client", new int[] { Types.INTEGER }, ReturnType.INTEGER); private final String methodName; private final int[] argumentTypes; private final ReturnType returnType; ClientProcedure(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(); } }