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
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 }