implement presentation of trigger
[teamcity/dotNetPackagesSupport.git] / nuget-server / src / jetbrains / buildServer / nuget / server / trigger / NuGetSimpleTrigger.java
1 package jetbrains.buildServer.nuget.server.trigger;\r
2 \r
3 import jetbrains.buildServer.buildTriggers.*;\r
4 import jetbrains.buildServer.serverSide.InvalidProperty;\r
5 import jetbrains.buildServer.serverSide.PropertiesProcessor;\r
6 import jetbrains.buildServer.util.StringUtil;\r
7 import jetbrains.buildServer.web.openapi.PluginDescriptor;\r
8 import org.jetbrains.annotations.NotNull;\r
9 \r
10 import java.util.ArrayList;\r
11 import java.util.Collection;\r
12 import java.util.Map;\r
13 \r
14 /**\r
15  * @author Eugene Petrenko (eugene.petrenko@gmail.com)\r
16  *         Date: 03.05.11 15:25\r
17  */\r
18 public class NuGetSimpleTrigger extends BuildTriggerService {\r
19   private final PluginDescriptor myDescriptor;\r
20 \r
21   public NuGetSimpleTrigger(@NotNull final PluginDescriptor descriptor) {\r
22     myDescriptor = descriptor;\r
23   }\r
24 \r
25   @NotNull\r
26   @Override\r
27   public String getName() {\r
28     return TriggerConstants.TRIGGER_ID;\r
29   }\r
30 \r
31   @NotNull\r
32   @Override\r
33   public String getDisplayName() {\r
34     return "NuGet Dependency Trigger";\r
35   }\r
36 \r
37   @NotNull\r
38   @Override\r
39   public String describeTrigger(@NotNull final BuildTriggerDescriptor trigger) {\r
40     Map<String, String> props = trigger.getProperties();\r
41     StringBuilder sb = new StringBuilder();\r
42     sb.append("Package Id: ").append(props.get(TriggerConstants.PACKAGE)).append("\n");\r
43     sb.append("Source: ").append(props.get(TriggerConstants.PACKAGE));\r
44 \r
45     String version = props.get(TriggerConstants.VERSION);\r
46     if (!StringUtil.isEmptyOrSpaces(version)) {\r
47       sb.append("\n");\r
48       sb.append("Version: ").append(version);\r
49     }\r
50 \r
51     return sb.toString();\r
52   }\r
53 \r
54   @NotNull\r
55   @Override\r
56   public BuildTriggeringPolicy getBuildTriggeringPolicy() {\r
57     return new PolledBuildTrigger() {\r
58       @Override\r
59       public void triggerBuild(@NotNull final PolledTriggerContext context) throws BuildTriggerException {\r
60       }\r
61     };\r
62   }\r
63 \r
64   @Override\r
65   public boolean isMultipleTriggersPerBuildTypeAllowed() {\r
66     return true;\r
67   }\r
68 \r
69   @Override\r
70   public PropertiesProcessor getTriggerPropertiesProcessor() {\r
71     return new PropertiesProcessor() {\r
72       public Collection<InvalidProperty> process(Map<String, String> properties) {\r
73         Collection<InvalidProperty> err = new ArrayList<InvalidProperty>();\r
74 \r
75         if (StringUtil.isEmptyOrSpaces(properties.get(TriggerConstants.SOURCE))) {\r
76           err.add(new InvalidProperty(TriggerConstants.SOURCE, "Source must be specified"));\r
77         }\r
78 \r
79         if (StringUtil.isEmptyOrSpaces(properties.get(TriggerConstants.PACKAGE))) {\r
80           err.add(new InvalidProperty(TriggerConstants.PACKAGE, "Package Id must be specified"));\r
81         }\r
82 \r
83         return err;\r
84       }\r
85     };\r
86   }\r
87 \r
88   @Override\r
89   public String getEditParametersUrl() {\r
90     return myDescriptor.getPluginResourcesPath("trigger/editSimpleTrigger.jsp");\r
91   }\r
92 }\r