
com.dragome.web.debugging.messages.ClientToServerServiceInvocationHandler Maven / Gradle / Ivy
/*******************************************************************************
* Copyright (c) 2011-2014 Fernando Petrola
*
* This file is part of Dragome SDK.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
******************************************************************************/
package com.dragome.web.debugging.messages;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.dragome.services.ServiceInvocation;
import com.dragome.services.ServiceLocator;
import com.dragome.services.WebServiceLocator;
import com.dragome.web.debugging.CrossExecutionResultImpl;
import com.dragome.web.debugging.ServiceInvocationResult;
import com.dragome.web.debugging.interfaces.CrossExecutionResult;
import com.dragome.web.execution.ApplicationExecutor;
public class ClientToServerServiceInvocationHandler implements InvocationHandler
{
private Class> type;
public ClientToServerServiceInvocationHandler(Class> type)
{
this.type= type;
}
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
{
return invokeMethod2(type, method, args);
}
public Object invokeMethod2(Class type, Method method, Object[] args)
{
boolean serialized= false;
String serialize= "";
serialize= "{\"@id\":0,\"method\":\"${AE}.pushResult:1\",\"id\":\"16\",\"args\":[{\"@id\":1,\"listResult\":null,\"id\":\"${id}\",\"objectResult\":{\"@id\":2,\"result\":\"${result}\",\"class\":\"${CERI}\"},\"class\":\"${SIR}\"}],\"type\":{\"name\":\"${AE}\",\"class\":\"java.lang.Class\"},\"class\":\"${SI}\"}";
// serialize= "{\"@id\":0,\"method\":\"${AE}.pushResult:1\",\"id\":\"292\",\"args\":[{\"@id\":1,\"result\":{\"@id\":2,\"result\":\"${result}\",\"class\":\"${CERI}\"},\"id\":\"${id}\",\"class\":\"${SIR}\"}],\"type\":{\"name\":\"${AE}\",\"class\":\"java.lang.Class\"},\"class\":\"${SI}\"}";
serialize= serialize.replace("${AE}", ApplicationExecutor.class.getName());
serialize= serialize.replace("${CERI}", CrossExecutionResultImpl.class.getName());
serialize= serialize.replace("${SIR}", ServiceInvocationResult.class.getName());
serialize= serialize.replace("${SI}", ServiceInvocation.class.getName());
if (method.getName().equals("pushResult") && args[0] instanceof ServiceInvocationResult)
{
ServiceInvocationResult serviceInvocationResult= (ServiceInvocationResult) args[0];
if (serviceInvocationResult.getObjectResult() instanceof CrossExecutionResult)
{
CrossExecutionResult result= (CrossExecutionResult) serviceInvocationResult.getObjectResult();
serialize= serialize.replace("${result}", (result.getResult() + "").replace("\"", "\\\"").replace("\n", "\\\\n").replace("\r", "\\\\r"));
serialize= serialize.replace("${id}", serviceInvocationResult.getId());
serialized= true;
}
}
if (!serialized)
{
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy