/**
* Copyright (C) 2009-2013 FoundationDB, LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.foundationdb.ais.model.aisb2;
import static com.foundationdb.ais.model.Routine.*;
public interface NewRoutineBuilder {
NewRoutineBuilder language(String language, CallingConvention callingConvention);
NewRoutineBuilder returnBoolean(String name);
NewRoutineBuilder returnLong(String name);
NewRoutineBuilder returnString(String name, int length);
NewRoutineBuilder returnVarBinary(String name, int length);
NewRoutineBuilder paramBooleanIn(String name);
NewRoutineBuilder paramLongIn(String name);
NewRoutineBuilder paramIntegerIn(String name);
NewRoutineBuilder paramStringIn(String name, int length);
NewRoutineBuilder paramVarBinaryIn(String name, int length);
NewRoutineBuilder paramDoubleIn(String name);
NewRoutineBuilder paramLongOut(String name);
NewRoutineBuilder paramStringOut(String name, int length);
NewRoutineBuilder paramVarBinaryOut(String name, int length);
NewRoutineBuilder paramDoubleOut(String name);
NewRoutineBuilder externalName(String className);
NewRoutineBuilder externalName(String className, String methodName);
NewRoutineBuilder externalName(String jarName, String className, String methodName);
NewRoutineBuilder externalName(String jarSchema, String jarName,
String className, String methodName);
NewRoutineBuilder procDef(String definition);
NewRoutineBuilder sqlAllowed(SQLAllowed sqlAllowed);
NewRoutineBuilder dynamicResultSets(int dynamicResultSets);
NewRoutineBuilder deterministic(boolean deterministic);
NewRoutineBuilder calledOnNullInput(boolean calledOnNullInput);
}