View Javadoc

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  }