View Javadoc

1   /*
2    ORG Usurper is a random value object generator library 
3    Copyright (C) 2007  Pierre-Antoine Grégoire
4    
5    This library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9    
10   This library is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13   Lesser General Public License for more details.
14   
15   You should have received a copy of the GNU Lesser General Public
16   License along with this library; if not, write to the Free Software
17   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
18   */
19  package org.org.usurper.springframework;
20  
21  import java.util.List;
22  
23  import org.org.usurper.UsurperGenerator;
24  import org.org.usurper.setup.UsurperGeneratorSetup;
25  import org.springframework.beans.factory.FactoryBean;
26  import org.springframework.beans.factory.InitializingBean;
27  import org.springframework.beans.factory.annotation.Required;
28  
29  /**
30   * The Class UsurperListFactoryBean is a Spring compliant FactoryBean and InitializingBean.
31   * As such, it can be used as any other Spring Factory Bean.
32   * It generates Lists of Usurpers for a given class.
33   */
34  public class UsurperListFactoryBean implements FactoryBean, InitializingBean {
35  
36  	private UsurperGenerator<?> usurperGenerator;
37  	private String usurpedClassName;
38  	private Integer count = UsurperSpringConstants.DEFAULT_ENTRIES_COUNT;
39  	@SuppressWarnings("unchecked")
40  	private Class usurpedClass;
41  	
42  	private UsurperGeneratorSetup usurperGeneratorSetup;
43  
44      public void setUsurperGeneratorSetup(UsurperGeneratorSetup usurperGeneratorSetup) {
45          this.usurperGeneratorSetup = usurperGeneratorSetup;
46      }
47      
48      @Required
49  	public void setUsurpedClassName(String usurpedClassName) {
50  		this.usurpedClassName = usurpedClassName;
51  	}
52  
53  	public Object getObject() throws Exception {
54  		return usurperGenerator.generateUsurperList(count);
55  	}
56  
57  	@SuppressWarnings("unchecked")
58  	public Class getObjectType() {
59  		return List.class;
60  	}
61  
62  	public boolean isSingleton() {
63  		return false;
64  	}
65  
66  	@SuppressWarnings("unchecked")
67  	public void afterPropertiesSet() throws Exception {
68  		usurpedClass = Class.forName(usurpedClassName);
69  		if (usurperGeneratorSetup == null) {
70              usurperGenerator = new UsurperGenerator(usurpedClass);
71          } else {
72              usurperGenerator = new UsurperGenerator(usurpedClass, usurperGeneratorSetup);
73          }
74  	}
75  
76  	public void setCount(Integer count) {
77  		this.count = count;
78  	}
79  
80  }