| package com.intellij.psi.impl.source.resolve.reference.impl; |
| |
| import com.intellij.openapi.util.TextRange; |
| import com.intellij.psi.PsiElement; |
| import com.intellij.psi.PsiReference; |
| import com.intellij.util.IncorrectOperationException; |
| import org.jetbrains.annotations.NotNull; |
| import org.jetbrains.annotations.Nullable; |
| |
| /** |
| * @author Sergey Evdokimov |
| */ |
| public class PsiDelegateReference implements PsiReference { |
| |
| private final PsiReference myDelegate; |
| |
| public PsiDelegateReference(@NotNull PsiReference delegate) { |
| myDelegate = delegate; |
| } |
| |
| @Override |
| public PsiElement getElement() { |
| return myDelegate.getElement(); |
| } |
| |
| @Override |
| public TextRange getRangeInElement() { |
| return myDelegate.getRangeInElement(); |
| } |
| |
| @Nullable |
| @Override |
| public PsiElement resolve() { |
| return myDelegate.resolve(); |
| } |
| |
| @NotNull |
| @Override |
| public String getCanonicalText() { |
| return myDelegate.getCanonicalText(); |
| } |
| |
| @Override |
| public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException { |
| return myDelegate.handleElementRename(newElementName); |
| } |
| |
| @Override |
| public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException { |
| return myDelegate.bindToElement(element); |
| } |
| |
| @Override |
| public boolean isReferenceTo(PsiElement element) { |
| return myDelegate.isReferenceTo(element); |
| } |
| |
| @NotNull |
| @Override |
| public Object[] getVariants() { |
| return myDelegate.getVariants(); |
| } |
| |
| @Override |
| public boolean isSoft() { |
| return myDelegate.isSoft(); |
| } |
| |
| public static PsiReference createSoft(PsiReference origin, final boolean soft) { |
| return new PsiDelegateReference(origin) { |
| @Override |
| public boolean isSoft() { |
| return soft; |
| } |
| }; |
| } |
| } |