1   package com.atlassian.plugins.codegen.modules.jira;
2   
3   import java.util.ArrayList;
4   import java.util.List;
5   import java.util.Properties;
6   
7   import com.atlassian.plugins.codegen.modules.BasicClassModuleProperties;
8   import com.atlassian.plugins.codegen.modules.common.Resource;
9   
10  /**
11   * @since 3.6
12   */
13  public class UserFormatProperties extends BasicClassModuleProperties
14  {
15  
16      public static final String TYPE_NAME = "TYPE_NAME";
17      public static final String TYPE_KEY = "TYPE_KEY";
18      public static final String RESOURCES = "RESOURCES";
19  
20      public UserFormatProperties()
21      {
22          this("MyUserFormat");
23      }
24  
25      public UserFormatProperties(String fqClassName)
26      {
27          super(fqClassName);
28          setResources(new ArrayList<Resource>());
29      }
30  
31      public void setTypeKey(String key)
32      {
33          setProperty(TYPE_KEY, key);
34      }
35  
36      public String getTypeKey()
37      {
38          return getProperty(TYPE_KEY);
39      }
40  
41      public void setTypeName(String name)
42      {
43          setProperty(TYPE_NAME, name);
44      }
45  
46      public String getTypeName()
47      {
48          return getProperty(TYPE_NAME);
49      }
50  
51      public void setResources(List<Resource> resources)
52      {
53          put(RESOURCES, resources);
54      }
55  
56      public List<Resource> getResources()
57      {
58          return (List<Resource>) get(RESOURCES);
59      }
60  
61      public void addResource(Resource resource)
62      {
63          List<Resource> resources = getResources();
64          if (null == resources)
65          {
66              resources = new ArrayList<Resource>();
67              setResources(resources);
68          }
69  
70          resources.add(resource);
71      }
72  
73      @Override
74      public Properties getI18nProperties()
75      {
76          Properties props = super.getI18nProperties();
77  
78          if (containsKey(TYPE_KEY) && containsKey(TYPE_NAME))
79          {
80              props.setProperty(getProperty(TYPE_KEY), getProperty(TYPE_NAME));
81          }
82  
83          return props;
84      }
85  }