/* * Copyright 2013 Guidewire Software, Inc. */ package gw.plugin.ij.lang.psi.impl.expressions; import com.intellij.psi.PsiElementVisitor; import gw.lang.parser.expressions.IDirectiveExpression; import gw.plugin.ij.lang.parser.GosuCompositeElement; import gw.plugin.ij.lang.psi.api.statements.IGosuParametersOwner; import gw.plugin.ij.lang.psi.api.statements.params.IGosuParameter; import gw.plugin.ij.lang.psi.impl.GosuElementVisitor; import gw.plugin.ij.lang.psi.impl.GosuPsiElementImpl; import gw.plugin.ij.lang.psi.impl.statements.params.GosuParameterListImpl; import org.jetbrains.annotations.NotNull; public class GosuDirectiveExpressionImpl extends GosuPsiElementImpl<IDirectiveExpression> implements IGosuParametersOwner { public GosuDirectiveExpressionImpl(GosuCompositeElement node) { super(node); } @NotNull @Override public IGosuParameter[] getParameters() { final GosuParameterListImpl parameters = findChildByClass(GosuParameterListImpl.class); return parameters != null ? parameters.getParameters() : IGosuParameter.EMPTY_ARRAY; } @Override public void accept(@NotNull PsiElementVisitor visitor) { if( visitor instanceof GosuElementVisitor) { ((GosuElementVisitor)visitor).visitDirectiveExpression(this); } else { visitor.visitElement( this ); } } }