class members refactoring refactoring
[fedora-idea.git] / lang-impl / src / com / intellij / refactoring / classMembers / MemberInfoTooltipManager.java
blob30dcede8ba4ff5bb6ffbddd8236c8fa94556825b
1 package com.intellij.refactoring.classMembers;
3 import com.intellij.psi.PsiElement;
4 import com.intellij.util.containers.HashMap;
6 /**
7 * @author dsl
8 */
9 public class MemberInfoTooltipManager<T extends PsiElement, M extends MemberInfoBase<T>> {
10 private final HashMap<M, String> myTooltips = new HashMap<M, String>();
11 private final TooltipProvider<T, M> myProvider;
13 public interface TooltipProvider<T extends PsiElement, M extends MemberInfoBase<T>> {
14 String getTooltip(M memberInfo);
17 public MemberInfoTooltipManager(TooltipProvider<T, M> provider) {
18 myProvider = provider;
21 public void invalidate() {
22 myTooltips.clear();
25 public String getTooltip(M member) {
26 if(myTooltips.keySet().contains(member)) {
27 return myTooltips.get(member);
29 String tooltip = myProvider.getTooltip(member);
30 myTooltips.put(member, tooltip);
31 return tooltip;