code: @Override
      protected Object getRequestData() throws ActivityException {
          Object request = super.getRequestData();
          if (request==null) throw new ActivityException("Request data is null");
          if (request instanceof DocumentReference) request = getDocumentContent((DocumentReference)request);
          if (request instanceof String) return request;
          else if (request instanceof Document) return
              VariableTranslator.realToString(getPackage(), Document.class.getName(), request);
          else if (request instanceof XmlObject) return ((XmlObject)request).xmlText();
          else throw new ActivityException(
                  "Cannot handle request of type " + request.getClass().getName());
      }
docs: The method overrides the one from the super class and perform the followings:
  <ul>
  <li>It gets the value of the variable with the name specified in the attribute
  REQUEST_VARIABLE. The value is typically an XML document or a string</li>
  <li>It invokes the variable translator to convert the value into a string
  and then return the string value.</li>
  </ul>
  The method will through exception if the variable is not bound,
  or the value is not bound to a DocumentReference or String.