View Javadoc

1   package org.org.usurper.springframework;
2   
3   import java.util.Set;
4   
5   import org.org.usurper.UsurperGenerator;
6   import org.org.usurper.setup.UsurperGeneratorSetup;
7   import org.springframework.beans.factory.FactoryBean;
8   import org.springframework.beans.factory.InitializingBean;
9   import org.springframework.beans.factory.annotation.Required;
10  
11  /**
12   * The Class UsurperSetFactoryBean is a Spring compliant FactoryBean and InitializingBean.
13   * As such, it can be used as any other Spring Factory Bean.
14   * It generates Sets of Usurpers for a given class.
15   */
16  public class UsurperSetFactoryBean implements FactoryBean, InitializingBean {
17  
18      private UsurperGenerator<?> usurperGenerator;
19      private String usurpedClassName;
20      private Integer count = UsurperSpringConstants.DEFAULT_ENTRIES_COUNT;
21      @SuppressWarnings("unchecked")
22      private Class usurpedClass;
23      private UsurperGeneratorSetup usurperGeneratorSetup;
24      
25      public void setUsurperGeneratorSetup(UsurperGeneratorSetup usurperGeneratorSetup) {
26          this.usurperGeneratorSetup = usurperGeneratorSetup;
27      }
28      
29      @Required
30      public void setUsurpedClassName(String usurpedClassName) {
31          this.usurpedClassName = usurpedClassName;
32      }
33  
34      public Object getObject() throws Exception {
35          return usurperGenerator.generateUsurperSet(count);
36      }
37  
38      @SuppressWarnings("unchecked")
39      public Class getObjectType() {
40          return Set.class;
41      }
42  
43      public boolean isSingleton() {
44          return false;
45      }
46  
47      @SuppressWarnings("unchecked")
48      public void afterPropertiesSet() throws Exception {
49          usurpedClass = Class.forName(usurpedClassName);
50          if (usurperGeneratorSetup == null) {
51              usurperGenerator = new UsurperGenerator(usurpedClass);
52          } else {
53              usurperGenerator = new UsurperGenerator(usurpedClass, usurperGeneratorSetup);
54          }
55      }
56  
57      public void setCount(Integer count) {
58          this.count = count;
59      }
60  
61  }