code: public void setServerAsyncMethod(final String jsPreFunctionBody,
              final ServerAsyncMethod serverAsyncMethod,
              final String jsFilterFunctionBody,
              final String jsPostFunctionBody) {
  
          setServerAsyncMethod(jsPreFunctionBody, serverAsyncMethod,
                  jsFilterFunctionBody, jsPostFunctionBody, serverSideData);
      }
docs: @param jsPreFunctionBody
  the body part javascript function
  (without function declaration). It must
  return true/false. This function will
  invoke at client side before
  {@code serverAsyncMethod}. If the
  jsPrefunction returns true then only
  {@code serverAsyncMethod} method will
  invoke (if it is implemented). It has
  implicit objects like {@code event} and
  {@code source} which gives the reference
  of the current tag. <br>
  Eg:-
  
  <pre>
  if (source.type == 'button') {
  return true;
  }
  return false;
  </pre>
  
  @param serverAsyncMethod
  This method will invoke at server side
  with an argument {@code wffBMObject}. The
  {@code wffBMObject} is the
  representational javascript object
  returned by {@code jsFilterFunctionBody}.
  
  @param jsFilterFunctionBody
  The body part of a javascript function
  (without function declaration). It can
  return a javascript object so that it
  will be available at server side in
  {@code serverAsyncMethod} as
  {@code wffBMObject} parameter. There are
  implicit objects {@code event} and
  {@code source} in the scope.<br>
  Eg:-
  
  <pre>
  var bName = source.name;
  return {buttonName: bName, author:'wff', dateOfYear: 2014};
  </pre>
  
  @param jsPostFunctionBody
  The body part of a javascript function
  (without function declaration). The
  {@code wffBMObject} returned by
  {@code serverAsyncMethod} will be
  available as an implicit object
  {@code jsObject} in the scope. There are
  common implicit objects {@code event} and
  {@code source} in the scope.
  @since 2.0.0
  @author WFF