drop repository in trigger description
[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.BuildTriggerDescriptor;\r
4 import jetbrains.buildServer.buildTriggers.BuildTriggerService;\r
5 import jetbrains.buildServer.buildTriggers.BuildTriggeringPolicy;\r
6 import jetbrains.buildServer.serverSide.InvalidProperty;\r
7 import jetbrains.buildServer.serverSide.PropertiesProcessor;\r
8 import jetbrains.buildServer.util.StringUtil;\r
9 import jetbrains.buildServer.web.openapi.PluginDescriptor;\r
10 import org.jetbrains.annotations.NotNull;\r
11 \r
12 import java.util.ArrayList;\r
13 import java.util.Collection;\r
14 import java.util.Map;\r
15 \r
16 /**\r
17  * @author Eugene Petrenko (eugene.petrenko@gmail.com)\r
18  *         Date: 03.05.11 15:25\r
19  */\r
20 public class NuGetSimpleTrigger extends BuildTriggerService {\r
21   private final PluginDescriptor myDescriptor;\r
22   private BuildTriggeringPolicy myPolicy;\r
23 \r
24   public NuGetSimpleTrigger(@NotNull final PluginDescriptor descriptor,\r
25                             @NotNull final ThreadedBuildTriggetFactory factory,\r
26                             @NotNull final NamedPackagesUpdateChecker checker) {\r
27     myDescriptor = descriptor;\r
28     myPolicy = factory.createTrigger(checker);\r
29   }\r
30 \r
31   @NotNull\r
32   @Override\r
33   public String getName() {\r
34     return TriggerConstants.TRIGGER_ID;\r
35   }\r
36 \r
37   @NotNull\r
38   @Override\r
39   public String getDisplayName() {\r
40     return "NuGet Dependency Trigger";\r
41   }\r
42 \r
43   @NotNull\r
44   @Override\r
45   public String describeTrigger(@NotNull final BuildTriggerDescriptor trigger) {\r
46     Map<String, String> props = trigger.getProperties();\r
47     StringBuilder sb = new StringBuilder();\r
48     sb.append("Package Id: ").append(props.get(TriggerConstants.PACKAGE)).append("\n");\r
49     String version = props.get(TriggerConstants.VERSION);\r
50     if (!StringUtil.isEmptyOrSpaces(version)) {\r
51       sb.append("\n");\r
52       sb.append("Version: ").append(version);\r
53     }\r
54 \r
55     return sb.toString();\r
56   }\r
57 \r
58   @NotNull\r
59   @Override\r
60   public BuildTriggeringPolicy getBuildTriggeringPolicy() {\r
61     return myPolicy;\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.NUGET_EXE))) {\r
76           err.add(new InvalidProperty(TriggerConstants.NUGET_EXE, "NuGet.exe path 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