JavaAsIsFunctionWrapper.java

package eu.javaexperience.rpc.function;

import java.lang.reflect.Method;
import java.lang.reflect.Type;

import eu.javaexperience.rpc.RpcRequest;

public class JavaAsIsFunctionWrapper<C extends RpcRequest> extends JavaFunctionRpcWrapper<C>
{
	public static JavaAsIsFunctionWrapper<RpcRequest> wrapJavaFunctionAsIs(Method m)
	{
		JavaAsIsFunctionWrapper ret = new JavaAsIsFunctionWrapper();
		ret.javaMethod = m;
		ret.name = m.getName();
		ret.returningType = createByType(m.getGenericReturnType());
		
		Type[] params = m.getGenericParameterTypes();
		ret.params = new RpcFunctionParameter[params.length];
		for(int i=0;i<params.length;++i)
		{
			ret.params[i] = createByType(params[i]);
		}
		
		return ret;
	}
	
	protected Object[] assembleJavaFunctionParameters(C ctx, Object thisContext, String functionName, Object... params)
	{
		return params;
	}
}