


package       com.pkg.transformers;


import        java.util.HashMap;

import        org.mule.impl.MuleMessage;
import        org.mule.transformers.AbstractTransformer;


public class POSTToHashMap extends AbstractTransformer {
  // Private and protected members

  private boolean isValidPOST(Object   anObject) {
    MuleMessage    aMessage;

    return (aMessage.getProperty("http.method").toString().equalsIgnoreCase("POST"));
  } // isValidPost


  private HashMap extractDataFrom(anObject) {
    int                      nFileCount;
    String[]                 arg,
                             arguments;
    HashMap<String, String>  retObj;
    String                   payload;

    payload   = ((MuleMessage) anObject).getPayloadAsString();
    arguments = payload.split("&", -1);

    for (String argument : arguments) {
      arg = argument.split("=");
      if (arg.length != 0x02) {
        log.error("Invalid argument: "+argument);
        break;
      }
      retObj.put(arg[0x00], arg[0x01]);
    }

    return retObj;
  }  // extractDataFrom


  // Public methods
  public Object transform(Object anObject) {
    HashMap        payload = null;

    if (this.isValidPOST(anObject)) // anObject == instance of MuleMessage
      payload = this.extractDataFrom(anObject);

    return payload;
  } //
} // POSTToHashMap class

