View Javadoc

1   /**
2    * Copyright (c) 2009-2010, Elias Gomes. All rights reserved.
3    * 
4    * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
5    * following conditions are met:
6    * 
7    * - Redistributions of source code must retain the above copyright notice, this list of conditions and the following
8    * disclaimer.
9    * 
10   * - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
11   * disclaimer in the documentation and/or other materials provided with the distribution.
12   * 
13   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
14   * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
15   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
16   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
17   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
18   * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
19   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
20   */
21  package net.sourceforge.mystique.infrastructure.validation;
22  
23  import net.sourceforge.mystique.domain.valueobject.Configuration;
24  
25  import org.springframework.validation.Errors;
26  import org.springframework.validation.Validator;
27  import org.springframework.web.multipart.MultipartFile;
28  
29  /**
30   * @author Elias Gomes [eliasgomes@users.sourceforge.net]
31   */
32  public class MultipartFileValidator implements Validator {
33  
34  	private Configuration configuration;
35  
36  	public MultipartFileValidator(Configuration configuration) {
37  		this.configuration = configuration;
38  	}
39  
40  	@Override
41  	@SuppressWarnings("unchecked")
42  	public boolean supports(Class clss) {
43  
44  		return MultipartFile.class.isAssignableFrom(clss);
45  
46  	}
47  
48  	@Override
49  	public void validate(Object object, Errors errors) {
50  
51  		MultipartFile multipartFile = (MultipartFile) object;
52  		if (configuration.getAttachmentsMaxLength().compareTo(multipartFile.getSize()) < 0) {
53  			errors.reject("multipartFile.tooLarge");
54  		}
55  
56  	}
57  
58  }