support nuget tools reference in nuget trigger
[teamcity/dotNetPackagesSupport.git] / nuget-server / src / jetbrains / buildServer / nuget / server / toolRegistry / NuGetToolManager.java
1 /*\r
2  * Copyright 2000-2011 JetBrains s.r.o.\r
3  *\r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  * http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 \r
17 package jetbrains.buildServer.nuget.server.toolRegistry;\r
18 \r
19 import org.jetbrains.annotations.NotNull;\r
20 import org.jetbrains.annotations.Nullable;\r
21 \r
22 import java.util.Collection;\r
23 \r
24 /**\r
25  * Created by Eugene Petrenko (eugene.petrenko@gmail.com)\r
26  * Date: 10.08.11 20:22\r
27  */\r
28 public interface NuGetToolManager {\r
29   /**\r
30    * @return list of installed nuget tools\r
31    */\r
32   @NotNull\r
33   Collection<? extends NuGetInstalledTool> getInstalledTools();\r
34 \r
35   /**\r
36    * @return list of tools that are installing now\r
37    */\r
38   @NotNull\r
39   Collection<NuGetInstallingTool> getInstallingTool();\r
40 \r
41   /**\r
42    * @param policy kind of packages to return\r
43    * @return fetches the full list of available and supported nuget tools\r
44    * @throws FetchException on fetch error if it was called\r
45    */\r
46   @NotNull\r
47   Collection<? extends NuGetTool> getAvailableTools(@NotNull final ToolsPolicy policy) throws FetchException;\r
48 \r
49   /**\r
50    * Downloads and installs nuget tools for both server and agent\r
51    * @param toolId tool id for tool to install\r
52    */\r
53   void installTool(@NotNull String toolId);\r
54 \r
55 \r
56   /**\r
57    * Removes tool from server and build agents\r
58    * @param toolId tool id from {@link #getInstalledTools()} method\r
59    */\r
60   void removeTool(@NotNull String toolId);\r
61 \r
62   /**\r
63    * Resolves path to NuGet.exe tool\r
64    * @param path path to tool\r
65    * @return resolved path of given path\r
66    */\r
67   @Nullable\r
68   String getNuGetPath(@Nullable String path);\r
69 }\r