/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.plugin.ij.lang.psi.impl.expressions;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.PsiType;
import gw.lang.parser.expressions.IParenthesizedExpression;
import gw.plugin.ij.lang.parser.GosuCompositeElement;
import gw.plugin.ij.lang.psi.IGosuPsiElement;
import gw.plugin.ij.lang.psi.api.expressions.IGosuExpression;
import gw.plugin.ij.lang.psi.impl.GosuElementVisitor;
import gw.plugin.ij.lang.psi.impl.GosuPsiElementImpl;
import org.jetbrains.annotations.NotNull;
public class GosuParenthesizedExpressionImpl extends GosuPsiElementImpl<IParenthesizedExpression> implements IGosuExpression {
public GosuParenthesizedExpressionImpl(GosuCompositeElement node) {
super(node);
}
@Override
public PsiType getType() {
return createType(getParsedElement().getType());
}
@NotNull
public IGosuPsiElement getExpression() {
return (IGosuPsiElement) getChildren()[0];
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if( visitor instanceof GosuElementVisitor) {
((GosuElementVisitor)visitor).visitParenthesizedExpression(this);
}
else {
visitor.visitElement( this );
}
}
}