static Object convertArg(IRubyObject arg, JavaCallable method, int index) { return arg.toJava(method.getParameterTypes()[index]); }
static Object convertArg(IRubyObject arg, JavaCallable method, int index) { return arg.toJava(method.getParameterTypes()[index]); }
protected JavaCallable findCallableArityZero(IRubyObject self, String name) { JavaCallable callable; if ((callable = javaCallable) == null) { // TODO: varargs? JavaCallable[] callablesForArity = null; if (javaCallables.length == 0 || (callablesForArity = javaCallables[0]) == null) { raiseNoMatchingCallableError(name, self, EMPTY_OBJECT_ARRAY); } callable = callablesForArity[0]; } else { if (callable.getParameterTypes().length != 0) { throw self.getRuntime().newArgumentError(0, callable.getParameterTypes().length); } } return callable; }
@JRubyMethod public IRubyObject inspect() { StringBuilder result = new StringBuilder(); result.append(nameOnInspection()); Class<?>[] parameterTypes = getParameterTypes(); for (int i = 0; i < parameterTypes.length; i++) { result.append(parameterTypes[i].getName()); if (i < parameterTypes.length - 1) { result.append(','); } } result.append(")>"); return getRuntime().newString(result.toString()); }
protected JavaCallable findCallableArityZero(IRubyObject self, String name) { JavaCallable callable; if ((callable = javaCallable) == null) { // TODO: varargs? JavaCallable[] callablesForArity = null; if (javaCallables.length == 0 || (callablesForArity = javaCallables[0]) == null) { raiseNoMatchingCallableError(name, self, EMPTY_OBJECT_ARRAY); } callable = callablesForArity[0]; } else { if (callable.getParameterTypes().length != 0) { throw self.getRuntime().newArgumentError(0, callable.getParameterTypes().length); } } return callable; }
@JRubyMethod public IRubyObject inspect() { StringBuilder result = new StringBuilder(); result.append(nameOnInspection()); Class<?>[] parameterTypes = getParameterTypes(); for (int i = 0; i < parameterTypes.length; i++) { result.append(parameterTypes[i].getName()); if (i < parameterTypes.length - 1) { result.append(','); } } result.append(")>"); return getRuntime().newString(result.toString()); }
static Object convertVarargs(IRubyObject[] args, JavaCallable method) { Class[] types = method.getParameterTypes(); Class varargArrayType = types[types.length - 1]; Class varargType = varargArrayType.getComponentType(); int varargsStart = types.length - 1; int varargsCount = args.length - varargsStart; Object varargs; if (args.length == 0) { return Array.newInstance(varargType, 0); } else if (varargsCount == 1 && args[varargsStart] instanceof ArrayJavaProxy) { // we may have a pre-created array to pass; try that first varargs = args[varargsStart].toJava(varargArrayType); } else { varargs = Array.newInstance(varargType, varargsCount); for (int i = 0; i < varargsCount; i++) { Array.set(varargs, i, args[varargsStart + i].toJava(varargType)); } } return varargs; }
@JRubyMethod(name = { "argument_types", "parameter_types" }) public final RubyArray parameter_types() { return toRubyArray(getRuntime(), getParameterTypes()); }
@JRubyMethod public IRubyObject parameter_types() { return JavaClass.getRubyArray(getRuntime(), getParameterTypes()); }
@JRubyMethod public final RubyArray argument_types() { return JavaClass.getRubyArray(getRuntime(), getParameterTypes()); }
@JRubyMethod(name = { "argument_types", "parameter_types" }) public final RubyArray parameter_types() { return toRubyArray(getRuntime(), getParameterTypes()); }
@JRubyMethod public IRubyObject parameter_types() { return JavaClass.getRubyArray(getRuntime(), getParameterTypes()); }
@JRubyMethod public final RubyArray argument_types() { return JavaClass.getRubyArray(getRuntime(), getParameterTypes()); }
protected JavaCallable findCallableArityThree(IRubyObject self, String name, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2) { JavaCallable callable; if ((callable = javaCallable) == null) { // TODO: varargs? JavaCallable[] callablesForArity = null; if (javaCallables.length <= 3 || (callablesForArity = javaCallables[3]) == null) { throw self.getRuntime().newArgumentError(3, javaCallables.length - 1); } callable = CallableSelector.matchingCallableArityThree(runtime, cache, callablesForArity, arg0, arg1, arg2); if (callable == null) { throw CallableSelector.argTypesDoNotMatch(self.getRuntime(), self, callablesForArity, arg0, arg1, arg2); } } else { if (callable.getParameterTypes().length != 3) { throw self.getRuntime().newArgumentError(3, callable.getParameterTypes().length); } } return callable; }
protected JavaCallable findCallableArityFour(IRubyObject self, String name, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3) { JavaCallable callable; if ((callable = javaCallable) == null) { // TODO: varargs? JavaCallable[] callablesForArity = null; if (javaCallables.length <= 4 || (callablesForArity = javaCallables[4]) == null) { throw self.getRuntime().newArgumentError(4, javaCallables.length - 1); } callable = CallableSelector.matchingCallableArityFour(runtime, cache, callablesForArity, arg0, arg1, arg2, arg3); if (callable == null) { throw CallableSelector.argTypesDoNotMatch(self.getRuntime(), self, callablesForArity, arg0, arg1, arg2, arg3); } } else { if (callable.getParameterTypes().length != 4) { throw self.getRuntime().newArgumentError(4, callable.getParameterTypes().length); } } return callable; } }
protected JavaCallable findCallableArityThree(IRubyObject self, String name, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2) { JavaCallable callable; if ((callable = javaCallable) == null) { // TODO: varargs? JavaCallable[] callablesForArity = null; if (javaCallables.length <= 3 || (callablesForArity = javaCallables[3]) == null) { throw self.getRuntime().newArgumentError(3, javaCallables.length - 1); } callable = CallableSelector.matchingCallableArityThree(runtime, cache, callablesForArity, arg0, arg1, arg2); if (callable == null) { throw CallableSelector.argTypesDoNotMatch(self.getRuntime(), self, callablesForArity, arg0, arg1, arg2); } } else { if (callable.getParameterTypes().length != 3) { throw self.getRuntime().newArgumentError(3, callable.getParameterTypes().length); } } return callable; }
protected JavaCallable findCallableArityTwo(IRubyObject self, String name, IRubyObject arg0, IRubyObject arg1) { JavaCallable callable; if ((callable = javaCallable) == null) { // TODO: varargs? JavaCallable[] callablesForArity = null; if (javaCallables.length <= 2 || (callablesForArity = javaCallables[2]) == null) { throw self.getRuntime().newArgumentError(2, javaCallables.length - 1); } callable = CallableSelector.matchingCallableArityTwo(runtime, cache, callablesForArity, arg0, arg1); if (callable == null) { throw CallableSelector.argTypesDoNotMatch(self.getRuntime(), self, callablesForArity, arg0, arg1); } } else { if (callable.getParameterTypes().length != 2) { throw self.getRuntime().newArgumentError(2, callable.getParameterTypes().length); } } return callable; }
protected JavaCallable findCallableArityOne(IRubyObject self, String name, IRubyObject arg0) { JavaCallable callable; if ((callable = javaCallable) == null) { // TODO: varargs? JavaCallable[] callablesForArity = null; if (javaCallables.length <= 1 || (callablesForArity = javaCallables[1]) == null) { throw self.getRuntime().newArgumentError(1, javaCallables.length - 1); } callable = CallableSelector.matchingCallableArityOne(runtime, cache, callablesForArity, arg0); if (callable == null) { throw CallableSelector.argTypesDoNotMatch(self.getRuntime(), self, callablesForArity, arg0); } } else { if (callable.getParameterTypes().length != 1) { throw self.getRuntime().newArgumentError(1, callable.getParameterTypes().length); } } return callable; }
protected JavaCallable findCallableArityTwo(IRubyObject self, String name, IRubyObject arg0, IRubyObject arg1) { JavaCallable callable; if ((callable = javaCallable) == null) { // TODO: varargs? JavaCallable[] callablesForArity = null; if (javaCallables.length <= 2 || (callablesForArity = javaCallables[2]) == null) { throw self.getRuntime().newArgumentError(2, javaCallables.length - 1); } callable = CallableSelector.matchingCallableArityTwo(runtime, cache, callablesForArity, arg0, arg1); if (callable == null) { throw CallableSelector.argTypesDoNotMatch(self.getRuntime(), self, callablesForArity, arg0, arg1); } } else { if (callable.getParameterTypes().length != 2) { throw self.getRuntime().newArgumentError(2, callable.getParameterTypes().length); } } return callable; }
protected JavaCallable findCallableArityOne(IRubyObject self, String name, IRubyObject arg0) { JavaCallable callable; if ((callable = javaCallable) == null) { // TODO: varargs? JavaCallable[] callablesForArity = null; if (javaCallables.length <= 1 || (callablesForArity = javaCallables[1]) == null) { throw self.getRuntime().newArgumentError(1, javaCallables.length - 1); } callable = CallableSelector.matchingCallableArityOne(runtime, cache, callablesForArity, arg0); if (callable == null) { throw CallableSelector.argTypesDoNotMatch(self.getRuntime(), self, callablesForArity, arg0); } } else { if (callable.getParameterTypes().length != 1) { throw self.getRuntime().newArgumentError(1, callable.getParameterTypes().length); } } return callable; }