/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.plugin.ij.lang.psi.impl;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiManager;
import com.intellij.psi.impl.light.LightClassReference;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.util.IncorrectOperationException;
import gw.plugin.ij.lang.psi.impl.expressions.GosuIdentifierImpl;
import gw.plugin.ij.lang.psi.impl.expressions.GosuTypeLiteralImpl;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
public class GosuLightClassReference extends LightClassReference {
private final GosuIdentifierImpl namedElement;
public GosuLightClassReference(
@NotNull PsiManager manager, @NotNull @NonNls String text,
@NotNull @NonNls String className, @NotNull GlobalSearchScope resolveScope, GosuIdentifierImpl namedElement) {
super(manager, text, className, resolveScope);
this.namedElement = namedElement;
}
public PsiElement getReferenceNameElement() {
return namedElement;
}
public PsiFile getContainingFile(){
return namedElement.getContainingFile();
}
@NotNull
public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException {
GosuTypeLiteralImpl parent = (GosuTypeLiteralImpl) namedElement.getParent();
return parent.bindToElement(element);
}
}