private boolean doHandleMethodCall ( MethodCall < Object > methodCall , final ServiceMethodHandler serviceMethodHandler ) { if ( debug ) { logger . debug ( "ServiceImpl::doHandleMethodCall() METHOD CALL" + methodCall ) ; } if ( callbackManager != null ) { if ( methodCall . hasCallback ( ) && serviceMethodHandler . couldHaveCallback ( methodCall . name ( ) ) ) { callbackManager . registerCallbacks ( methodCall ) ; } } //inputQueueListener.receive(methodCall); final boolean continueFlag [ ] = new boolean [ 1 ] ; methodCall = beforeMethodProcessing ( methodCall , continueFlag ) ; if ( continueFlag [ 0 ] ) { if ( debug ) logger . debug ( "ServiceImpl::doHandleMethodCall() before handling stopped processing" ) ; return false ; } Response < Object > response = serviceMethodHandler . receiveMethodCall ( methodCall ) ; if ( response != ServiceConstants . VOID ) { if ( ! afterMethodCall . after ( methodCall , response ) ) { return false ; } //noinspection unchecked response = responseObjectTransformer . transform ( response ) ; if ( ! afterMethodCallAfterTransform . after ( methodCall , response ) ) { return false ; } if ( debug ) { if ( response . body ( ) instanceof Throwable ) { logger . error ( "Unable to handle call " , ( ( Throwable ) response . body ( ) ) ) ; } } if ( ! responseSendQueue . send ( response ) ) { logger . error ( "Unable to send response {} for method {} for object {}" , response , methodCall . name ( ) , methodCall . objectName ( ) ) ; } } return false ; }
This method is where all of the action is .