/* * Copyright 2013 Guidewire Software, Inc. */ package gw.plugin.ij.lang.psi.impl.statements; import com.intellij.psi.*; import com.intellij.psi.scope.PsiScopeProcessor; import com.intellij.psi.stubs.StubElement; import com.intellij.util.IncorrectOperationException; import gw.lang.parser.IParsedElementWithAtLeastOneDeclaration; import gw.plugin.ij.lang.parser.GosuCompositeElement; import gw.plugin.ij.lang.psi.api.statements.IGosuLocalVariable; import gw.plugin.ij.lang.psi.impl.GosuElementVisitor; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class GosuVariableImpl<E extends IParsedElementWithAtLeastOneDeclaration> extends GosuVariableBaseImpl<E, StubElement> implements IGosuLocalVariable { public GosuVariableImpl(@NotNull GosuCompositeElement node) { super(node); } public void accept(@NotNull GosuElementVisitor visitor) { visitor.visitVariable(this); } public String toString() { return "Local Variable"; } @Override public void setInitializer(@Nullable PsiExpression initializer) throws IncorrectOperationException { throw new UnsupportedOperationException("Men at work"); } public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) { return processor.execute(this, state); } @Override public void accept( @NotNull PsiElementVisitor visitor ) { if( visitor instanceof GosuElementVisitor ) { ((GosuElementVisitor)visitor).visitVariable(this); } else { visitor.visitElement( this ); } } }