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 org.apache.commons.lang.StringUtils;
10  
11  /**
12   * @since 3.6
13   */
14  public class CustomFieldProperties extends BasicClassModuleProperties
15  {
16  
17      public static final String RESOURCES = "RESOURCES";
18      public static final String CLASS_TO_EXTEND = "CLASS_TO_EXTEND";
19      public static final String PACKAGE_TO_EXTEND = "PACKAGE_TO_EXTEND";
20      public static final String FQ_CLASS_TO_EXTEND = "FQ_CLASS_TO_EXTEND";
21  
22  
23      public CustomFieldProperties()
24      {
25          this("MyCustomField");
26      }
27  
28      public CustomFieldProperties(String fqClassName)
29      {
30          super(fqClassName);
31          setResources(new ArrayList<Resource>());
32          setFullyQualifiedClassToExtend("com.atlassian.jira.issue.customfields.impl.TextCFType");
33      }
34  
35      public void setResources(List<Resource> resources)
36      {
37          put(RESOURCES, resources);
38      }
39  
40      public List<Resource> getResources()
41      {
42          return (List<Resource>) get(RESOURCES);
43      }
44  
45      public void addResource(Resource resource)
46      {
47          List<Resource> resources = getResources();
48          if (null == resources)
49          {
50              resources = new ArrayList<Resource>();
51              setResources(resources);
52          }
53  
54          resources.add(resource);
55      }
56  
57      public void setFullyQualifiedClassToExtend(String fqName)
58      {
59          String classname;
60          if (StringUtils.isNotBlank(fqName))
61          {
62              if (fqName.lastIndexOf(".") > 0)
63              {
64                  classname = StringUtils.substringAfterLast(fqName, ".");
65                  String packageName = StringUtils.substringBeforeLast(fqName, ".");
66                  setProperty(CLASS_TO_EXTEND, classname);
67                  setProperty(PACKAGE_TO_EXTEND, packageName);
68              } else
69              {
70                  classname = fqName;
71                  setProperty(CLASS_TO_EXTEND, classname);
72                  setProperty(PACKAGE_TO_EXTEND, "");
73              }
74  
75              setProperty(FQ_CLASS_TO_EXTEND, fqName);
76          }
77  
78      }
79  
80      public String getFullyQualifiedClassToExtend()
81      {
82          return getProperty(FQ_CLASS_TO_EXTEND);
83      }
84  
85  }