/**
 * ÀÌ ¼Ò½º´Â Spring ÇÁ·¹ÀÓ¿öÅ© ¿öÅ©ºÏ¿¡¼­ »ç¿ëÇÑ ¿¹Á¦ ¼Ò½ºÀÔ´Ï´Ù. 
 * ÀÌ ¼Ò½º´Â ¸ðµç °³¹ßÀÚµéÀÌ ÀÚÀ¯·Ó°Ô ¼öÁ¤ ¹× ¹èÆ÷ÇÒ ¼ö ÀÖ½À´Ï´Ù. 
 * ´Ü, ÀÌ ¼Ò½º¸¦ ±â¹ÝÀ¸·Î »õ·Î¿î ¾ÖÇÃ¸®ÄÉÀÌ¼ÇÀ» °³¹ßÇÒ °æ¿ì ÃâÃ³¸¦ ¸í½ÃÇØ ÁÖ½Ã¸é µË´Ï´Ù. 
 */
package net.javajigi.common.propertyeditor;

import java.beans.PropertyEditorSupport;

import net.javajigi.board.model.BoardFile;
import net.javajigi.common.util.FileUploadUtil;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.multipart.MultipartFile;

public class BoardFileMultipartPropertyEditor extends PropertyEditorSupport {
	protected final Log logger = LogFactory.getLog(getClass());

	private String realUploadPath;

	public BoardFileMultipartPropertyEditor(String realUploadPath) {
		this.realUploadPath = realUploadPath;
	}

	public void setValue(Object value) {
		if (value instanceof MultipartFile) {
			MultipartFile multipartFile = (MultipartFile) value;

			if (multipartFile.getSize() > 0) {
				BoardFile boardFile = FileUploadUtil.uploadFormFile(
						multipartFile, realUploadPath);
				super.setValue(boardFile);
			} else {
				super.setValue(null);
			}
		} else {
			super.setValue(value != null ? value.toString().getBytes() : null);
		}
	}
}
