/* * Copyright 2013 Guidewire Software, Inc. */ package gw.plugin.ij.lang.psi.impl.expressions; import com.intellij.codeInsight.daemon.impl.analysis.HighlightVisitorImpl; import com.intellij.psi.JavaElementVisitor; import com.intellij.psi.JavaResolveResult; import com.intellij.psi.PsiCallExpression; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElementVisitor; import com.intellij.psi.PsiExpressionList; import com.intellij.psi.PsiMethod; import com.intellij.psi.PsiReferenceParameterList; import gw.plugin.ij.lang.parser.GosuCompositeElement; import gw.plugin.ij.lang.parser.GosuElementTypes; import gw.plugin.ij.lang.psi.impl.GosuElementVisitor; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class GosuPropertyMemberAccessExpressionImpl extends GosuFieldAccessExpressionImpl implements PsiCallExpression { public GosuPropertyMemberAccessExpressionImpl(GosuCompositeElement node) { super(node); } @Override public void accept( @NotNull PsiElementVisitor visitor ) { if( visitor instanceof JavaElementVisitor && !(visitor instanceof HighlightVisitorImpl) ) { ((JavaElementVisitor)visitor).visitCallExpression( this ); } else if( visitor instanceof GosuElementVisitor) { ((GosuElementVisitor)visitor).visitFieldAccessExpression(this); } else { visitor.visitElement( this ); } } @Nullable @Override public PsiExpressionList getArgumentList() { return (GosuExpressionListImpl)findChildByType( GosuElementTypes.ELEM_TYPE_ArgumentListClause ); } @Override public PsiMethod resolveMethod() { PsiElement target = resolve(); return target instanceof PsiMethod ? (PsiMethod)target : null; } @NotNull @Override public JavaResolveResult resolveMethodGenerics() { throw new UnsupportedOperationException( "Not implemented yet" ); } @NotNull @Override public PsiReferenceParameterList getTypeArgumentList() { return null; } }