1 package com.atlassian.maven.plugins.amps.product;
2
3 import com.atlassian.maven.plugins.amps.MavenContext;
4 import com.atlassian.maven.plugins.amps.MavenGoals;
5 import com.atlassian.maven.plugins.amps.product.studio.StudioBambooProductHandler;
6 import com.atlassian.maven.plugins.amps.product.studio.StudioConfluenceProductHandler;
7 import com.atlassian.maven.plugins.amps.product.studio.StudioCrowdProductHandler;
8 import com.atlassian.maven.plugins.amps.product.studio.StudioFeCruProductHandler;
9 import com.atlassian.maven.plugins.amps.product.studio.StudioJiraProductHandler;
10 import com.atlassian.maven.plugins.amps.product.studio.StudioProductHandler;
11
12 import java.util.Arrays;
13 import java.util.Collection;
14
15 public class ProductHandlerFactory
16 {
17 public static final String REFAPP = "refapp";
18 public static final String CONFLUENCE = "confluence";
19 public static final String JIRA = "jira";
20 public static final String BAMBOO = "bamboo";
21 public static final String FECRU = "fecru";
22 public static final String CROWD = "crowd";
23 public static final String STASH = "stash";
24
25 public static final String STUDIO = "studio";
26 public static final String STUDIO_CONFLUENCE = "studio-confluence";
27 public static final String STUDIO_JIRA = "studio-jira";
28 public static final String STUDIO_BAMBOO = "studio-bamboo";
29 public static final String STUDIO_FECRU = "studio-fecru";
30 public static final String STUDIO_CROWD = "studio-crowd";
31
32
33
34 public static ProductHandler create(String id, MavenContext context, MavenGoals goals)
35 {
36 if (REFAPP.equals(id))
37 {
38 return new RefappProductHandler(context, goals);
39 }
40 else if (CONFLUENCE.equals(id))
41 {
42 return new ConfluenceProductHandler(context, goals);
43 }
44 else if (JIRA.equals(id))
45 {
46 return new JiraProductHandler(context, goals);
47 }
48 else if (BAMBOO.equals(id))
49 {
50 return new BambooProductHandler(context, goals);
51 }
52 else if (FECRU.equals(id))
53 {
54 return new FeCruProductHandler(context, goals);
55 }
56 else if (CROWD.equals(id))
57 {
58 return new CrowdProductHandler(context, goals);
59 }
60
61 else if (STASH.equals(id))
62 {
63 return new StashProductHandler(context, goals);
64 }
65
66
67 else if (STUDIO.equals(id))
68 {
69 return new StudioProductHandler(context, goals);
70 }
71
72
73 else if (STUDIO_CONFLUENCE.equals(id))
74 {
75 return new StudioConfluenceProductHandler(context, goals);
76 }
77 else if (STUDIO_JIRA.equals(id))
78 {
79 return new StudioJiraProductHandler(context, goals);
80 }
81 else if (STUDIO_BAMBOO.equals(id))
82 {
83 return new StudioBambooProductHandler(context, goals);
84 }
85 else if (STUDIO_FECRU.equals(id))
86 {
87 return new StudioFeCruProductHandler(context, goals);
88 }
89 else if (STUDIO_CROWD.equals(id))
90 {
91 return new StudioCrowdProductHandler(context, goals);
92 }
93
94
95 throw new IllegalArgumentException("Unknown product id: '" + id + "' Valid values: "
96 + Arrays.toString(getIds().toArray()));
97 }
98
99 public static Collection<String> getIds()
100 {
101 return Arrays.asList(REFAPP, CONFLUENCE, JIRA, BAMBOO, FECRU, CROWD, STASH,
102 STUDIO, STUDIO_CONFLUENCE, STUDIO_JIRA, STUDIO_BAMBOO, STUDIO_FECRU, STUDIO_CROWD);
103 }
104 }