simplify GTDUCollector a bit more
[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.Nls;
5 import org.jetbrains.annotations.NotNull;
6 import org.jetbrains.annotations.Nullable;
7
8 import java.util.List;
9
10 public abstract class ProjectStructureElement {
11   protected final StructureConfigurableContext myContext;
12
13   protected ProjectStructureElement(@NotNull StructureConfigurableContext context) {
14     myContext = context;
15   }
16
17   @NotNull
18   public @Nls(capitalization = Nls.Capitalization.Sentence) String getPresentableText() {
19     return getTypeName() + " '" + getPresentableName() + "'";
20   }
21
22   public abstract @Nls(capitalization = Nls.Capitalization.Sentence) String getPresentableName();
23
24   @Nullable
25   public String getDescription() {
26     return null;
27   }
28
29   public abstract @Nls(capitalization = Nls.Capitalization.Sentence) String getTypeName();
30
31   public abstract String getId();
32
33   public abstract void check(ProjectStructureProblemsHolder problemsHolder);
34
35   public abstract List<ProjectStructureElementUsage> getUsagesInElement();
36
37
38   public boolean shouldShowWarningIfUnused() {
39     return false;
40   }
41
42   @Nullable
43   public ProjectStructureProblemDescription createUnusedElementWarning() {
44     return null;
45   }
46
47
48   @Override
49   public abstract boolean equals(Object obj);
50
51   @Override
52   public abstract int hashCode();
53
54   @Override
55   public String toString() {
56     return getId();
57   }
58 }