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