public static MESSAGE createFiletransfer(
      List<String> receivers, byte[] data, Map<String, String> parameters) {
    ObjectFactory objectFactory = new ObjectFactory();
    MESSAGE request = objectFactory.createMESSAGE();
    request.setParameters(objectFactory.createMESSAGEParameters());
    request.setReceivers(objectFactory.createMESSAGEReceivers());
    request.setType(REQUEST);
    request.setName(Request.FILETRANSFER);

    if (data != null) {
      request.setData(data);
    }

    if (receivers != null) {
      for (String receiver : receivers) {
        request.getReceivers().getReceiver().add(receiver);
      }
    }
    if (parameters != null) {

      Set<String> paramKeys = parameters.keySet();
      for (String key : paramKeys) {
        MESSAGE.Parameters.Parameter msgParamter = objectFactory.createMESSAGEParametersParameter();
        msgParamter.setName(key);
        msgParamter.setValue(parameters.get(key));
        request.getParameters().getParameter().add(msgParamter);
      }
    }
    return request;
  }
  public static MESSAGE createMessage(
      String name, List<String> receivers, Map<String, String> parameters) {
    ObjectFactory objectFactory = new ObjectFactory();
    MESSAGE request = objectFactory.createMESSAGE();
    request.setParameters(objectFactory.createMESSAGEParameters());
    request.setReceivers(objectFactory.createMESSAGEReceivers());
    request.setContents(objectFactory.createMESSAGEContents());
    request.setType(MESSAGE);
    if (name != null) {
      request.setName(name);
    }
    if (receivers != null) {
      for (String receiver : receivers) {
        request.getReceivers().getReceiver().add(receiver);
      }
    }
    if (parameters != null) {

      Set<String> paramKeys = parameters.keySet();
      for (String key : paramKeys) {
        MESSAGE.Parameters.Parameter msgParamter = objectFactory.createMESSAGEParametersParameter();
        msgParamter.setName(key);
        msgParamter.setValue(parameters.get(key));
        request.getParameters().getParameter().add(msgParamter);
      }
    }
    return request;
  }
 public static void addReceiverAt(MESSAGE message, String receiver, int position) {
   message.getReceivers().getReceiver().add(position, receiver);
 }
 public static void addReceiver(MESSAGE message, String receiver) {
   message.getReceivers().getReceiver().add(receiver);
 }