lvcs-impl
[idea/community.git] / platform / lang-api / src / com / intellij / codeInspection / reference / RefEntity.java
1 /*
2  * Copyright 2000-2007 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 com.intellij.codeInspection.reference;
17
18 import com.intellij.openapi.util.UserDataHolder;
19 import org.jetbrains.annotations.Nullable;
20
21 import javax.swing.*;
22 import java.util.List;
23
24 /**
25  * Base class for nodes in the reference graph built during the global inspection pass.
26  *
27  * @author anna
28  * @since 6.0
29  * @see RefManager
30  */
31 public interface RefEntity extends UserDataHolder {
32   /**
33    * Returns the name of the node.
34    *
35    * @return the name of the node.
36    */
37   String getName();
38
39   String getQualifiedName();
40
41   /**
42    * Returns the list of children of the node.
43    *
44    * @return the list of children.
45    */
46   List<RefEntity> getChildren();
47
48   /**
49    * Returns the parent of the node.
50    *
51    * @return the parent of the node.
52    */
53   RefEntity getOwner();
54
55   /**
56    * Accepts the specified visitor and passes self to one of its visit methods.
57    *
58    * @param refVisitor the visitor to accept.
59    */
60   void accept(final RefVisitor refVisitor);
61
62   /**
63    * Returns a user-readable name for the element corresponding to the node.
64    *
65    * @return the user-readable name.
66    */
67   String getExternalName();
68
69   /**
70    * Checks if the element corresponding to the node is valid.
71    *
72    * @return true if the element is valid, false otherwise.
73    */
74   boolean isValid();
75
76   /**
77    * Returns the reference graph manager for the node.
78    *
79    * @return the reference graph element for the instance.
80    */
81   RefManager getRefManager();
82
83   @Nullable
84   Icon getIcon(boolean expanded);
85 }