cleanup
[idea/community.git] / plugins / groovy / src / org / jetbrains / plugins / groovy / annotator / intentions / dynamic / elements / DItemElement.java
1 /*
2  * Copyright 2000-2009 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.jetbrains.plugins.groovy.annotator.intentions.dynamic.elements;
17
18 import com.intellij.psi.PsiManager;
19 import com.intellij.psi.PsiNamedElement;
20 import org.jetbrains.annotations.NotNull;
21 import org.jetbrains.annotations.Nullable;
22
23 /**
24  * User: Dmitry.Krasilschikov
25  * Date: 13.02.2008
26  */
27
28 /*
29  * Base class for Dynamic property and method
30  */
31
32 public abstract class DItemElement implements DNamedElement, DTypedElement, Comparable {
33   public String myType = null;
34   public Boolean myStatic = false;
35   public String myName = null;
36
37 //  @NotNull
38   public String myHighlightedText = null;
39
40   public DItemElement(@Nullable Boolean isStatic, @Nullable String name, @Nullable String type) {
41     myStatic = isStatic;
42     myName = name;
43     myType = type;
44   }
45
46   public String getHighlightedText() {
47     return myHighlightedText;
48   }
49
50   public void setHighlightedText(String highlightedText) {
51     myHighlightedText = highlightedText;
52   }
53
54   public boolean equals(Object o) {
55     if (this == o) return true;
56     if (o == null || getClass() != o.getClass()) return false;
57
58     DItemElement that = (DItemElement)o;
59
60     if (myName != null ? !myName.equals(that.myName) : that.myName != null) return false;
61     if (myType != null ? !myType.equals(that.myType) : that.myType != null) return false;
62     if (myStatic != that.myStatic) return false;
63
64     return true;
65   }
66
67   public int hashCode() {
68     int result;
69     result = (myType != null ? myType.hashCode() : 0);
70     result = 31 * result + (myName != null ? myName.hashCode() : 0);
71     return result;
72   }
73
74   public String getType() {
75     return myType;
76   }
77
78   public void setType(String type) {
79     this.myType = type;
80     clearCache();
81   }
82
83   public abstract void clearCache();
84
85   public String getName() {
86     return myName;
87   }
88
89   public void setName(String name) {
90     this.myName = name;
91     clearCache();
92   }
93
94   public Boolean isStatic() {
95     return myStatic;
96   }
97
98   public void setStatic(Boolean aStatic) {
99     myStatic = aStatic;
100     clearCache();
101   }
102
103   public int compareTo(Object o) {
104     if (!(o instanceof DItemElement)) return 0;
105     final DItemElement otherProperty = (DItemElement)o;
106
107     return getName().compareTo(otherProperty.getName()) + getType().compareTo(otherProperty.getType());
108   }
109
110
111   @NotNull
112   public abstract PsiNamedElement getPsi(PsiManager manager, String containingClassName);
113 }