/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.plugin.ij.lang.psi.api;
import com.intellij.psi.PsiElement;
import gw.lang.parser.IFunctionSymbol;
import gw.lang.parser.IReducedSymbol;
import gw.lang.reflect.IHasParameterInfos;
import gw.lang.reflect.IPropertyInfo;
import gw.lang.reflect.gs.IGosuClass;
import gw.plugin.ij.lang.psi.impl.expressions.GosuReferenceExpressionImpl;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public interface IFeatureResolver {
@Nullable
PsiElement resolve(IPropertyInfo propertyInfo, PsiElement context);
@Nullable
PsiElement resolve(IReducedSymbol symbol, IGosuClass gsClass, GosuReferenceExpressionImpl context);
@Nullable
IGosuResolveResult resolveMethodOrConstructor(@NotNull IHasParameterInfos info, @NotNull PsiElement ctx);
@Nullable
PsiElement resolveMethodOrConstructor(@NotNull IFunctionSymbol symbol, @NotNull PsiElement ctx);
}