1   package com.atlassian.plugins.codegen.modules;
2   
3   import java.util.Properties;
4   
5   import com.atlassian.plugins.codegen.util.ClassnameUtil;
6   
7   import org.apache.commons.lang.StringUtils;
8   
9   /**
10   * @since 3.6
11   */
12  public abstract class AbstractNameBasedModuleProperties extends AbstractPluginModuleProperties implements NameBasedModuleProperties
13  {
14  
15      protected AbstractNameBasedModuleProperties()
16      {
17          super();
18      }
19  
20      public void setModuleNameAndKey(String moduleName)
21      {
22          if (StringUtils.isNotBlank(moduleName))
23          {
24              setModuleName(moduleName);
25              setModuleKey(ClassnameUtil.camelCaseOrSpaceToDashed(moduleName)
26                      .toLowerCase());
27              setDescription("The " + getProperty(MODULE_NAME) + " Plugin");
28              setNameI18nKey(getProperty(MODULE_KEY) + ".name");
29              setDescriptionI18nKey(getProperty(MODULE_KEY) + ".description");
30          }
31      }
32  
33      @Override
34      public void setModuleName(String name)
35      {
36          setProperty(MODULE_NAME, name);
37      }
38  
39      @Override
40      public String getModuleName()
41      {
42          return getProperty(MODULE_NAME);
43      }
44  
45      @Override
46      public void setModuleKey(String name)
47      {
48          setProperty(MODULE_KEY, name);
49      }
50  
51      @Override
52      public String getModuleKey()
53      {
54          return getProperty(MODULE_KEY);
55      }
56  
57      @Override
58      public void setDescription(String desc)
59      {
60          setProperty(DESCRIPTION, desc);
61      }
62  
63      @Override
64      public String getDescription()
65      {
66          return getProperty(DESCRIPTION);
67      }
68  
69      @Override
70      public void setDescriptionI18nKey(String key)
71      {
72          setProperty(DESCRIPTION_I18N_KEY, key);
73      }
74  
75      @Override
76      public String getDescriptionI18nKey()
77      {
78          return getProperty(DESCRIPTION_I18N_KEY);
79      }
80  
81      @Override
82      public void setNameI18nKey(String key)
83      {
84          setProperty(NAME_I18N_KEY, key);
85      }
86  
87      @Override
88      public String getNameI18nKey()
89      {
90          return getProperty(NAME_I18N_KEY);
91      }
92  
93      @Override
94      public Properties getI18nProperties()
95      {
96          Properties props = super.getI18nProperties();
97          props.setProperty(getProperty(NAME_I18N_KEY), getProperty(MODULE_NAME));
98          props.setProperty(getProperty(DESCRIPTION_I18N_KEY), getProperty(DESCRIPTION));
99  
100         return props;
101     }
102 }