in docker_images/java/wrapper/src/main/java/glue/ModuleGlue.java [423:456]
public DirectMethodResponse onMethodInvoked(String methodName, DirectMethodPayload methodData, Object context)
{
System.out.printf("method %s called%n", methodName);
if (methodName.equals(this._methodName))
{
System.out.println("Received payload:");
System.out.println(methodData.getPayloadAsJsonString());
Object methodDataObject = methodData.getPayload(Map.class);
System.out.printf("methodData: %s%n", methodDataObject);
if (methodDataObject.equals(this._requestBody) ||
Json.encode(methodDataObject).equals(this._requestBody))
{
System.out.printf("Method data looks correct. Returning result: %s%n", _responseBody);
this._handler.handle(Future.succeededFuture());
this.reset();
return new DirectMethodResponse(this._statusCode, this._responseBody);
}
else
{
System.out.printf("method data does not match. Expected %s%n", this._requestBody);
this._handler.handle(Future.failedFuture("methodData does not match"));
this.reset();
return new DirectMethodResponse(500, "methodData not received as expected");
}
}
else
{
this._handler.handle(Future.failedFuture("unexpected call: " + methodName));
this.reset();
return new DirectMethodResponse(404, "method " + methodName + " not handled");
}
}