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