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