/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.plugin.ij.lang.psi.impl.statements.typedef.members;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.StubBasedPsiElement;
import gw.plugin.ij.lang.parser.GosuCompositeElement;
import gw.plugin.ij.lang.parser.GosuElementTypes;
import gw.plugin.ij.lang.psi.api.statements.typedef.IGosuMethod;
import gw.plugin.ij.lang.psi.impl.GosuElementVisitor;
import gw.plugin.ij.lang.psi.stubs.GosuMethodStub;
import org.jetbrains.annotations.NotNull;
public class GosuMethodImpl extends GosuMethodBaseImpl<GosuMethodStub> implements IGosuMethod, StubBasedPsiElement<GosuMethodStub> {
public GosuMethodImpl(@NotNull GosuCompositeElement node) {
super(node);
}
public GosuMethodImpl(@NotNull GosuMethodStub stub) {
super(stub, GosuElementTypes.METHOD_DEFINITION);
}
@Override
public String[] getNamedParametersArray() {
final GosuMethodStub stub = getStub();
if (stub != null) {
return stub.getNamedParameters();
}
return super.getNamedParametersArray();
}
@NotNull
@Override
public String getName() {
final GosuMethodStub stub = getStub();
if (stub != null) {
return stub.getName();
}
return super.getName();
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if( visitor instanceof GosuElementVisitor) {
((GosuElementVisitor)visitor).visitMethod(this);
}
else {
visitor.visitElement( this );
}
}
}