Open Source Repository

Home /jodd/jodd-3.3.2 | Repository Home


jodd/bean/loader/MultipartRequestBeanLoader.java
// Copyright (c) 2003-2012, Jodd Team (jodd.org). All Rights Reserved.

package jodd.bean.loader;

import jodd.servlet.upload.MultipartRequest;
import jodd.servlet.upload.FileUpload;

/**
 * Populates java bean from {@link MultipartRequest} objects.
 */
public class MultipartRequestBeanLoader extends BaseBeanLoader {

  protected boolean trim;

  public MultipartRequestBeanLoader() {
    this.trim = false;
  }

  public MultipartRequestBeanLoader(boolean trim) {
    this.trim = trim;
  }

  public void load(Object bean, Object source) {
    if (source instanceof MultipartRequest) {

      MultipartRequest multipartRequest = (MultipartRequestsource;

      for (Object o : multipartRequest.getParameterNames()) {
        String paramName = (Stringo;
        String[] paramValues = multipartRequest.getParameterValues(paramName);
        if (paramValues == null) {
          continue;
        }
        if (paramValues.length == 0) {
          continue;
        }
        if (trim == true) {
          for (int i = 0; i < paramValues.length; i++) {
            paramValues[i= paramValues[i].trim();
          }
        }
        if (paramValues.length == 1) {    // send just String
          beanUtilBean.setPropertyForced(bean, paramName, paramValues[0]);
        else {              // send String array
          beanUtilBean.setPropertyForced(bean, paramName, paramValues);
        }
      }

      for (Object o1 : multipartRequest.getFileParameterNames()) {
        String paramName = (Stringo1;
        FileUpload[] uf = multipartRequest.getFiles(paramName);
        if (uf == null) {
          continue;
        }
        if (uf.length == 0) {
          continue;
        }

        if (uf.length == 1) {
          beanUtilBean.setPropertyForcedSilent(bean, paramName, uf[0]);
        else {
          beanUtilBean.setPropertyForcedSilent(bean, paramName, uf);
        }
      }
    }
  }
}