4451b5eff175856c1b6d023cda930290429dd540
[idea/community.git] / java / idea-ui / src / com / intellij / openapi / roots / ui / configuration / projectRoot / daemon / ProjectStructureElement.java
1 package com.intellij.openapi.roots.ui.configuration.projectRoot.daemon;
2
3 import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
4 import org.jetbrains.annotations.NotNull;
5 import org.jetbrains.annotations.Nullable;
6
7 import java.util.List;
8
9 public abstract class ProjectStructureElement {
10   protected final StructureConfigurableContext myContext;
11
12   protected ProjectStructureElement(@NotNull StructureConfigurableContext context) {
13     myContext = context;
14   }
15
16   @NotNull
17   public String getPresentableText() {
18     return getTypeName() + " '" + getPresentableName() + "'";
19   }
20
21   public abstract String getPresentableName();
22
23   @Nullable
24   public String getDescription() {
25     return null;
26   }
27
28   public abstract String getTypeName();
29
30   public abstract String getId();
31
32   public abstract void check(ProjectStructureProblemsHolder problemsHolder);
33
34   public abstract List<ProjectStructureElementUsage> getUsagesInElement();
35
36
37   public boolean shouldShowWarningIfUnused() {
38     return false;
39   }
40
41   @Nullable
42   public ProjectStructureProblemDescription createUnusedElementWarning() {
43     return null;
44   }
45
46
47   @Override
48   public abstract boolean equals(Object obj);
49
50   @Override
51   public abstract int hashCode();
52
53   @Override
54   public String toString() {
55     return getId();
56   }
57 }