public static ReturnObject getReferenceReturnObject(String name) { ReturnObject rObject = new ReturnObject(); rObject.name = name; rObject.isReference = true; rObject.commandPart = Protocol.REFERENCE_TYPE + name; return rObject; }
public final static String getOutputCommand(ReturnObject rObject) { StringBuilder builder = new StringBuilder(); // TODO Should be configurable // TODO ADD RETURN MESSAGE TO OTHER OUTPUT COMMAND builder.append(RETURN_MESSAGE); if (rObject.isError()) { builder.append(rObject.getCommandPart()); } else { builder.append(SUCCESS); builder.append(rObject.getCommandPart()); } builder.append(END_OUTPUT); return builder.toString(); }
if (object != null) { if (isPrimitiveObject(object)) { returnObject = ReturnObject.getPrimitiveReturnObject(object); } else if (object == ReflectionEngine.RETURN_VOID) { returnObject = ReturnObject.getVoidReturnObject(); } else if (isDecimalObject(object)) { returnObject = ReturnObject.getDecimalReturnObject(object); } else if (isList(object)) { String objectId = putNewObject(object); returnObject = ReturnObject.getListReturnObject(objectId, ((List) object).size()); } else if (isMap(object)) { String objectId = putNewObject(object); returnObject = ReturnObject.getMapReturnObject(objectId, ((Map) object).size()); } else if (isArray(object)) { String objectId = putNewObject(object); returnObject = ReturnObject.getArrayReturnObject(objectId, Array.getLength(object)); } else if (isSet(object)) { String objectId = putNewObject(object); returnObject = ReturnObject.getSetReturnObject(objectId, ((Set) object).size()); } else if (isIterator(object)) { String objectId = putNewObject(object); returnObject = ReturnObject.getIteratorReturnObject(objectId); } else { String objectId = putNewObject(object); returnObject = ReturnObject.getReferenceReturnObject(objectId); returnObject = ReturnObject.getNullReturnObject();
if (returnObject.isError()) { feedException(writer, returnObject); return; if (!returnObject.isReference()) { .getErrorReturnObject(new ClassCastException("expected the method to return an Object"))); return; Object obj = gateway.getObject(returnObject.getName()); if (!(obj instanceof ReadableByteChannel)) { feedException(writer, ReturnObject.getErrorReturnObject( new ClassCastException("expected the method to return a ReadableByteChannel"))); return;
private void feedException(BufferedWriter writer, ReturnObject e) throws IOException { writer.write(Protocol.RETURN_MESSAGE); writer.write(e.getCommandPart()); writer.write(Protocol.END_OUTPUT); writer.flush(); }
protected ReturnObject invokeConstructor(String fqn, List<Object> arguments) { ReturnObject returnObject = null; try { returnObject = gateway.invoke(fqn, arguments); } catch (Exception e) { logger.log(Level.FINE, "Received exception while executing this command: " + fqn, e); returnObject = ReturnObject.getErrorReturnObject(e); } return returnObject; }
} catch (Py4JJavaException je) { String id = putNewObject(je.getCause()); returnObject = ReturnObject.getErrorReferenceReturnObject(id); } catch (Py4JException pe) { throw pe;
private String createJVMView(BufferedReader reader) throws IOException { String name = StringUtil.unescape(reader.readLine()); reader.readLine(); JVMView newView = new JVMView(name, null); ReturnObject rObject = gateway.getReturnObject(newView); newView.setId(rObject.getName()); return Protocol.getOutputCommand(rObject); }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { logger.fine("Method " + method.getName() + " called on Python object " + id); StringBuilder sBuilder = new StringBuilder(); sBuilder.append(CALL_PROXY_COMMAND_NAME); sBuilder.append(id); sBuilder.append("\n"); sBuilder.append(method.getName()); sBuilder.append("\n"); if (args != null) { for (Object arg : args) { sBuilder.append(gateway.getReturnObject(arg).getCommandPart()); sBuilder.append("\n"); } } sBuilder.append("e\n"); String returnCommand = gateway.getCallbackClient().sendCommand(sBuilder.toString()); Object output = Protocol.getReturnValue(returnCommand, gateway); Object convertedOutput = convertOutput(method, output); return convertedOutput; }
/** * <p> * Convenient shortcut to invoke a method dynamically. * </p> * * @param methodName * @param targetObjectId * @param arguments * @return */ protected ReturnObject invokeMethod(String methodName, String targetObjectId, List<Object> arguments) { ReturnObject returnObject = null; try { returnObject = gateway.invoke(methodName, targetObjectId, arguments); } catch (Exception e) { logger.log(Level.FINE, "Received exception while executing this command: " + methodName, e); returnObject = ReturnObject.getErrorReturnObject(e); } return returnObject; }
} catch (Py4JJavaException je) { String id = putNewObject(je.getCause()); returnObject = ReturnObject.getErrorReferenceReturnObject(id); } catch (Py4JException pe) { throw pe;
public static ReturnObject getSetReturnObject(String name, int size) { ReturnObject rObject = new ReturnObject(); rObject.name = name; rObject.size = size; rObject.isSet = true; rObject.commandPart = Protocol.SET_TYPE + name; return rObject; }
@RequestMapping(value="/postLogout.html", method=RequestMethod.GET) @ResponseBody public MyreturnObject getPostLogout(){ return new ReturnObject(true,true,false); }
Observable<ReturnObject> observable = Observable.concat( apiCall1(), apiCall2(), apiCall3() ).flatMap(response -> { if (response.value == whatWeAreLookingFor) { ReturnObject obj = new ReturnObject(); // set obj properties and return it. return Observable.just(obj); } // Return empty to continue with next call from .concat() list. return null; // or return Observable.empty(); }).first(); // Makes sure only the first non-empty result is called and returned.
public static ReturnObject getArrayReturnObject(String name, int size) { ReturnObject rObject = new ReturnObject(); rObject.name = name; rObject.size = size; rObject.isArray = true; rObject.commandPart = Protocol.ARRAY_TYPE + name; return rObject; }
public static ReturnObject getIteratorReturnObject(String name) { ReturnObject rObject = new ReturnObject(); rObject.name = name; rObject.isIterator = true; rObject.commandPart = Protocol.ITERATOR_TYPE + name; return rObject; }
public static ReturnObject getListReturnObject(String name, int size) { ReturnObject rObject = new ReturnObject(); rObject.name = name; rObject.size = size; rObject.isList = true; rObject.commandPart = Protocol.LIST_TYPE + name; return rObject; }
public static ReturnObject getMapReturnObject(String name, int size) { ReturnObject rObject = new ReturnObject(); rObject.name = name; rObject.size = size; rObject.isMap = true; rObject.commandPart = Protocol.MAP_TYPE + name; return rObject; }
public static ReturnObject getDecimalReturnObject(Object object) { BigDecimal decimal = (BigDecimal) object; ReturnObject rObject = new ReturnObject(); rObject.isDecimal = true; rObject.commandPart = Protocol.DECIMAL_TYPE + decimal.toPlainString(); return rObject; }
public static ReturnObject getErrorReturnObject() { ReturnObject rObject = new ReturnObject(); rObject.isError = true; rObject.commandPart = String.valueOf(Protocol.ERROR); return rObject; }