blob: 8cab524201a61eafa975b44316c41d268c414260 [file] [log] [blame]
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;
}
};
}
}