/* * Copyright 2013 Guidewire Software, Inc. */ package gw.plugin.ij.lang.psi.impl.statements.typedef.members; import com.intellij.codeInsight.daemon.impl.analysis.HighlightVisitorImpl; import com.intellij.openapi.fileTypes.StdFileTypes; import com.intellij.openapi.util.TextRange; import com.intellij.psi.JavaElementVisitor; import com.intellij.psi.PsiClassType; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElementVisitor; import com.intellij.psi.PsiJavaCodeReferenceElement; import com.intellij.psi.PsiManager; import com.intellij.psi.PsiReferenceList; import com.intellij.psi.impl.light.LightElement; import gw.plugin.ij.lang.psi.impl.GosuElementVisitor; import org.jetbrains.annotations.NotNull; public class ThrowsReferenceList extends LightElement implements PsiReferenceList { private final int _iImaginaryStartOffset; public ThrowsReferenceList(PsiManager manager, int iImaginaryStartOffset ) { super(manager, StdFileTypes.JAVA.getLanguage()); _iImaginaryStartOffset = iImaginaryStartOffset; } @NotNull public String toString() { return "ThrowsReferenceList"; } @NotNull public String getText() { return ""; } public void accept(@NotNull PsiElementVisitor visitor) { if (visitor instanceof JavaElementVisitor && !(visitor instanceof HighlightVisitorImpl) ) { ((JavaElementVisitor) visitor).visitReferenceList(this); } else if( visitor instanceof GosuElementVisitor) { ((GosuElementVisitor)visitor).visitThrowsReferenceList(this); } else { visitor.visitElement(this); } } @NotNull @Override public TextRange getTextRange() { return new TextRange( _iImaginaryStartOffset, _iImaginaryStartOffset ); } @NotNull public PsiElement copy() { return this; } @NotNull public PsiJavaCodeReferenceElement[] getReferenceElements() { return PsiJavaCodeReferenceElement.EMPTY_ARRAY; } @NotNull public PsiClassType[] getReferencedTypes() { return PsiClassType.EMPTY_ARRAY; } @NotNull public Role getRole() { return Role.THROWS_LIST; } }