public Class[] getParameterTypes() { return _method.getParameterTypes(); }
@Override public int hashCode() { int h = name.hashCode() + getClass().hashCode(); for (final Class<?> cparamType : getParameterTypes()) h += 3 + (cparamType == null ? 0 : cparamType.hashCode()); return h + getParameterCount(); } }
public String toString() { return "Scripted Method: " + StringUtil.methodString( name, getParameterTypes() ); }
@Override public boolean equals(Object o) { if (o == null) return false; if (o == this) return true; if (o.getClass() != this.getClass()) return false; BshMethod m = (BshMethod)o; if( !name.equals(m.name) || getParameterCount() != m.getParameterCount() ) return false; for( int i = 0; i < getParameterCount(); i++ ) if( !equal(getParameterTypes()[i], m.getParameterTypes()[i]) ) return false; return true; }
/** Produce a complete string representation of a bsh method. Shows * modifiers, return type, name and parameter types. * @param method a bsh method * @return string representation of a method */ public static String methodString(BshMethod method) { String mods = method.getModifiers().toString().substring(11); StringBuilder sb = new StringBuilder(); return sb.append(mods).append(" ") .append(getTypeName(method.getReturnType())).append(" ") .append(methodString(method.getName(), method.getParameterTypes(), method.getParameterNames())) .append(mods.contains("abstract") ? ";" : " {}").toString(); }
.stream().map(m -> m.getParameterTypes()) .toArray(Class<?>[][]::new); int idx = Reflect.findMostSpecificSignature(sig, candidates);
candidates[i] = list.get(i).getParameterTypes();
public Object invoke(final Map<String, ?> context) throws EvalError { final NameSpace nameSpace = new NameSpace("BeanshellExecutable", _interpreter.getClassManager()); nameSpace.setParent(_interpreter.getNameSpace()); final BshMethod method = new BshMethod(_method.getName(), _method.getReturnType(), _method.getParameterNames(), _method.getParameterTypes(), _method.getParameterModifiers(), _method.methodBody, nameSpace, _method.getModifiers()); for (final Map.Entry<String, ?> entry : context.entrySet()) { try { final Object value = entry.getValue(); nameSpace.setVariable(entry.getKey(), value != null ? value : Primitive.NULL, false); } catch (final UtilEvalError e) { throw new EvalError("cannot set variable '" + entry.getKey() + '\'', null, null, e); } } final Object result = method.invoke(Reflect.ZERO_ARGS, _interpreter); if ( Types.getType(result) == Void.TYPE ) return null; return Primitive.unwrap(result); }
public Object invoke(final Map<String, ?> context) throws EvalError { final NameSpace nameSpace = new NameSpace(_interpreter.getClassManager(), "BeanshellExecutable"); nameSpace.setParent(_interpreter.getNameSpace()); final BshMethod method = new BshMethod(_method.getName(), _method.getReturnType(), _method.getParameterNames(), _method.getParameterTypes(), _method.methodBody, nameSpace, _method.getModifiers()); for (final Map.Entry<String, ?> entry : context.entrySet()) { try { nameSpace.setVariable(entry.getKey(), entry.getValue(), false); } catch (final UtilEvalError e) { throw new EvalError("cannot set variable '" + entry.getKey() + '\'', null, null, e); } } final Object result = method.invoke(new Object[0], new BshEvaluatingVisitor(null, _interpreter)); if (result instanceof Primitive) { if (( (Primitive) result).getType() == Void.TYPE) { return null; } return ( (Primitive) result).getValue(); } return result; }
if (null != Reflect.getDeclaredMethod(clas, m.getName(), m.getParameterTypes())) throw new EvalError("Cannot override "+m.getName()+"() in " + StringUtil.typeString(superClass) + " overridden method is final", null, null);
Class<?> [] paramTypes = getParameterTypes();
Class [] paramTypes = getParameterTypes();