1   package com.atlassian.plugins.codegen.modules;
2   
3   import org.apache.commons.lang.StringUtils;
4   
5   /**
6    * @since 3.6
7    */
8   public abstract class AbstractClassBasedModuleProperties extends AbstractNameBasedModuleProperties implements ClassBasedModuleProperties
9   {
10  
11      protected AbstractClassBasedModuleProperties()
12      {
13          super();
14      }
15  
16      public void setFullyQualifiedClassname(String fqName)
17      {
18          String classname;
19          if (StringUtils.isNotBlank(fqName))
20          {
21              if (fqName.lastIndexOf(".") > 0)
22              {
23                  classname = StringUtils.substringAfterLast(fqName, ".");
24                  String packageName = StringUtils.substringBeforeLast(fqName, ".");
25                  setProperty(CLASSNAME, classname);
26                  setClassUnderTest(fqName);
27  
28                  setProperty(PACKAGE, packageName);
29              } else
30              {
31                  classname = fqName;
32                  setProperty(CLASSNAME, classname);
33                  setClassUnderTest(fqName);
34                  setProperty(PACKAGE, "");
35              }
36  
37              setProperty(FQ_CLASSNAME, fqName);
38          }
39  
40      }
41  
42      public void setClassUnderTest(String fqName)
43      {
44          String classname;
45          if (StringUtils.isNotBlank(fqName))
46          {
47              if (fqName.lastIndexOf(".") > 0)
48              {
49                  classname = StringUtils.substringAfterLast(fqName, ".");
50                  String packageName = StringUtils.substringBeforeLast(fqName, ".");
51                  setProperty(CLASS_UNDER_TEST, classname);
52                  setProperty(PACKAGE_UNDER_TEST, packageName);
53              } else
54              {
55                  classname = fqName;
56                  setProperty(CLASS_UNDER_TEST, classname);
57                  setProperty(PACKAGE_UNDER_TEST, "");
58              }
59  
60              setProperty(FQ_CLASS_UNDER_TEST, fqName);
61          }
62      }
63  
64      @Override
65      public String getFullyQualifiedClassname()
66      {
67          return getProperty(FQ_CLASSNAME);
68      }
69  
70      @Override
71      public String getClassname()
72      {
73          return getProperty(CLASSNAME);
74      }
75  
76      @Override
77      public String getPackage()
78      {
79          return getProperty(PACKAGE);
80      }
81  
82      @Override
83      public String getClassUnderTest()
84      {
85          return getProperty(CLASS_UNDER_TEST);
86      }
87  
88      @Override
89      public String getFullyQualifiedClassUnderTest()
90      {
91          return getProperty(FQ_CLASS_UNDER_TEST);
92      }
93  
94      @Override
95      public String getPackageUnderTest()
96      {
97          return getProperty(PACKAGE_UNDER_TEST);
98      }
99  }