protected void invokeJavaMethod(final Object objectToSet, final String methodName, final String parameterType, final Object valueToSet) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException { final JavaMethodInvoker methodInvoker = new JavaMethodInvoker(); methodInvoker.invokeJavaMethod(parameterType, valueToSet, objectToSet, methodName, parameterType); }
public Object invokeJavaMethod(final String typeOfValueToSet, final Object valueToSetObjectWith, final Object objectToInvokeJavaMethodOn, final String operator, final String operatorParameterClassName) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { final Class<?> expressionResultType = getClassOrPrimitiveClass(typeOfValueToSet); final Class<?> dataType = Thread.currentThread().getContextClassLoader().loadClass(objectToInvokeJavaMethodOn.getClass().getName()); final Method method = MethodUtils.getMatchingAccessibleMethod(dataType, operator, new Class[]{getClassOrPrimitiveClass(operatorParameterClassName)}); if (method != null) { final Object o = dataType.cast(objectToInvokeJavaMethodOn); method.invoke(o, expressionResultType.cast(valueToSetObjectWith)); return o; } else { throw new NoSuchMethodException(dataType.toGenericString() + "." + operator + "(" + operatorParameterClassName + ")."); } } }
public Object invokeJavaMethod(final String typeOfValueToSet, final Object valueToSetObjectWith, final Object objectToInvokeJavaMethodOn, final String operator, final String operatorParameterClassName) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { final Class<?> expressionResultType = getClassOrPrimitiveClass(typeOfValueToSet); final Class<?> dataType = Thread.currentThread().getContextClassLoader().loadClass(objectToInvokeJavaMethodOn.getClass().getName()); final Method method = MethodUtils.getMatchingAccessibleMethod(dataType, operator, new Class[]{getClassOrPrimitiveClass(operatorParameterClassName)}); if (method != null) { final Object o = dataType.cast(objectToInvokeJavaMethodOn); method.invoke(o, expressionResultType.cast(valueToSetObjectWith)); return o; } else { throw new NoSuchMethodException(dataType.toGenericString() + "." + operator + "(" + operatorParameterClassName + ")."); } } }
protected void invokeJavaMethod(final Object objectToSet, final String methodName, final String parameterType, final Object valueToSet) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException { final JavaMethodInvoker methodInvoker = new JavaMethodInvoker(); methodInvoker.invokeJavaMethod(parameterType, valueToSet, objectToSet, methodName, parameterType); }
@Override public Object computeNewValueForLeftOperand(final SOperation operation, final Object valueToSetObjectWith, final SExpressionContext expressionContext, final boolean shouldPersistValue) throws SOperationExecutionException { final Object objectToInvokeJavaMethodOn; objectToInvokeJavaMethodOn = extractObjectToInvokeFromContext(operation, expressionContext); final String methodName = extractMethodName(operation); final String operatorType = extractParameterType(operation); try { return new JavaMethodInvoker().invokeJavaMethod(operation.getRightOperand().getReturnType(), valueToSetObjectWith, objectToInvokeJavaMethodOn, methodName, operatorType); } catch (final Exception e) { throw new SOperationExecutionException("Unable to evaluate operation " + operation, e); } }
@Override public Object computeNewValueForLeftOperand(final SOperation operation, final Object valueToSetObjectWith, final SExpressionContext expressionContext, final boolean shouldPersistValue) throws SOperationExecutionException { final Object objectToInvokeJavaMethodOn; objectToInvokeJavaMethodOn = extractObjectToInvokeFromContext(operation, expressionContext); final String methodName = extractMethodName(operation); final String operatorType = extractParameterType(operation); try { return new JavaMethodInvoker().invokeJavaMethod(operation.getRightOperand().getReturnType(), valueToSetObjectWith, objectToInvokeJavaMethodOn, methodName, operatorType); } catch (final Exception e) { throw new SOperationExecutionException("Unable to evaluate operation " + operation, e); } }