public DirectMethodResponse onMethodInvoked()

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");
            }
        }