5f52df7f2f2bd81205fbf2fc1a8d5e39f357eac7
[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 \r
21 import java.util.Collection;\r
22 \r
23 /**\r
24  * Created by Eugene Petrenko (eugene.petrenko@gmail.com)\r
25  * Date: 10.08.11 20:22\r
26  */\r
27 public interface NuGetToolManager {\r
28   /**\r
29    * @return list of installed nuget tools\r
30    */\r
31   @NotNull\r
32   Collection<? extends NuGetInstalledTool> getInstalledTools();\r
33 \r
34   /**\r
35    * @return list of tools that are installing now\r
36    */\r
37   @NotNull\r
38   Collection<NuGetInstallingTool> getInstallingTool();\r
39 \r
40   /**\r
41    * @param policy kind of packages to return\r
42    * @return fetches the full list of available and supported nuget tools\r
43    * @throws FetchException on fetch error if it was called\r
44    */\r
45   @NotNull\r
46   Collection<? extends NuGetTool> getAvailableTools(@NotNull final ToolsPolicy policy) throws FetchException;\r
47 \r
48   /**\r
49    * Downloads and installs nuget tools for both server and agent\r
50    * @param toolId tool id for tool to install\r
51    */\r
52   void installTool(@NotNull String toolId);\r
53 \r
54 \r
55   /**\r
56    * Removes tool from server and build agents\r
57    * @param toolId tool id from {@link #getInstalledTools()} method\r
58    */\r
59   void removeTool(@NotNull String toolId);\r
60 \r
61 }\r