1 package com.atlassian.plugins.codegen.modules;
2
3 import com.atlassian.plugins.codegen.util.ClassnameUtil;
4
5 import com.google.common.collect.ImmutableMap;
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 ImmutableMap<String, String> getI18nProperties()
95 {
96 ImmutableMap.Builder<String, String> ret = ImmutableMap.<String, String>builder();
97 ret.putAll(super.getI18nProperties());
98 if (getNameI18nKey() != null)
99 {
100 ret.put(getNameI18nKey(), (getModuleName() == null) ? "" : getModuleName());
101 }
102 if (getDescriptionI18nKey() != null)
103 {
104 ret.put(getDescriptionI18nKey(), (getDescription() == null) ? "" : getDescription());
105 }
106 return ret.build();
107 }
108 }