vcs: non-modal: Correctly update tab title if "Commit" tool window is hidden on proje...
[idea/community.git] / platform / projectModel-api / src / com / intellij / openapi / projectRoots / Sdk.java
1 // Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 package com.intellij.openapi.projectRoots;
3
4 import com.intellij.openapi.roots.ProjectRootManager;
5 import com.intellij.openapi.roots.RootProvider;
6 import com.intellij.openapi.util.NlsSafe;
7 import com.intellij.openapi.util.UserDataHolder;
8 import com.intellij.openapi.vfs.VirtualFile;
9 import org.jetbrains.annotations.ApiStatus;
10 import org.jetbrains.annotations.NonNls;
11 import org.jetbrains.annotations.NotNull;
12 import org.jetbrains.annotations.Nullable;
13
14 /**
15  * @author Eugene Zhuravlev
16  * @see ProjectJdkTable
17  * @see ProjectRootManager#getProjectSdk()
18  */
19 @ApiStatus.NonExtendable
20 public interface Sdk extends UserDataHolder {
21   @NotNull SdkTypeId getSdkType();
22
23   @NlsSafe @NotNull String getName();
24
25   @NlsSafe @Nullable String getVersionString();
26
27   @NonNls @Nullable String getHomePath();
28
29   @Nullable VirtualFile getHomeDirectory();
30
31   @NotNull RootProvider getRootProvider();
32
33   @NotNull SdkModificator getSdkModificator();
34
35   @Nullable SdkAdditionalData getSdkAdditionalData();
36
37   @NotNull Object clone() throws CloneNotSupportedException;
38 }