0f15c6eaeb5292714ccc472f274432f2ea075466
[idea/community.git] / java / idea-ui / src / com / intellij / openapi / roots / ui / configuration / projectRoot / daemon / SdkProjectStructureElement.java
1 package com.intellij.openapi.roots.ui.configuration.projectRoot.daemon;
2
3 import com.intellij.openapi.projectRoots.Sdk;
4 import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
5 import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
6
7 import java.util.Collections;
8 import java.util.List;
9
10 public class SdkProjectStructureElement extends ProjectStructureElement {
11   private final Sdk mySdk;
12
13   public SdkProjectStructureElement(StructureConfigurableContext context, Sdk sdk) {
14     super(context);
15     mySdk = getModifiableSdk(sdk);
16   }
17
18   private Sdk getModifiableSdk(Sdk sdk) {
19     Sdk modifiableSdk = ProjectStructureConfigurable.getInstance(myContext.getProject()).getProjectJdksModel().getProjectSdks().get(sdk);
20     return modifiableSdk != null? modifiableSdk : sdk;
21   }
22
23   public Sdk getSdk() {
24     return mySdk;
25   }
26
27   @Override
28   public void check(ProjectStructureProblemsHolder problemsHolder) {
29   }
30
31   @Override
32   public List<ProjectStructureElementUsage> getUsagesInElement() {
33     return Collections.emptyList();
34   }
35
36   @Override
37   public boolean equals(Object o) {
38     if (this == o) return true;
39     if (!(o instanceof SdkProjectStructureElement)) return false;
40     return mySdk.equals(((SdkProjectStructureElement)o).mySdk);
41
42   }
43
44   @Override
45   public int hashCode() {
46     return mySdk.hashCode();
47   }
48
49   @Override
50   public String getPresentableName() {
51     return mySdk.getName();
52   }
53
54   @Override
55   public String getTypeName() {
56     return "SDK";
57   }
58
59   @Override
60   public String getId() {
61     return "sdk:" + mySdk.getName();
62   }
63 }