1 package org.seasar.cubby.exception; 2 3 import org.apache.commons.fileupload.FileUploadException; 4 import org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException; 5 import org.seasar.framework.exception.SRuntimeException; 6 7 public class FileUploadRuntimeException extends SRuntimeException { 8 9 private static final long serialVersionUID = -4519684364519402697L; 10 11 public FileUploadRuntimeException(FileUploadException cause) { 12 super(messageCode(cause), args(cause), cause); 13 } 14 15 private static String messageCode(FileUploadException cause) { 16 final String messageCode; 17 if (cause instanceof SizeLimitExceededException) { 18 messageCode = "ECUB0202"; 19 } else { 20 messageCode = "ECUB0201"; 21 } 22 return messageCode; 23 } 24 25 private static Object[] args(FileUploadException cause) { 26 final Object[] args; 27 if (cause instanceof SizeLimitExceededException) { 28 SizeLimitExceededException sle = (SizeLimitExceededException) cause; 29 args = new Object[] { sle.getPermittedSize(), sle.getActualSize() }; 30 } else { 31 args = new Object[] { cause }; 32 } 33 return args; 34 } 35 }