类com.intellij.psi.JavaResolveResult源码实例Demo

下面列出了怎么用com.intellij.psi.JavaResolveResult的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: litho   文件: EventHandlerAnnotator.java
/**
 * Tries to guess if the given methodCall requires event handler.
 *
 * @return Qualified name of the handled Event or null, if methodCall neither accepts event
 *     handler, nor require fix.
 */
@Nullable
private static String resolveEventName(PsiMethodCallExpression methodCall) {
  return Optional.of(methodCall.getMethodExpression().multiResolve(true))
      .map(results -> results.length == 1 ? results[0] : JavaResolveResult.EMPTY)
      .filter(MethodCandidateInfo.class::isInstance)
      .map(MethodCandidateInfo.class::cast)
      .filter(MethodCandidateInfo::isTypeArgumentsApplicable)
      .filter(info -> !info.isApplicable() && !info.isValidResult())
      .map(info -> info.getElement().getParameterList().getParameters())
      .filter(parameters -> parameters.length > 0) // method(EventHandler<T> e)
      .map(parameters -> parameters[0].getType())
      .filter(PsiClassType.class::isInstance)
      .filter(
          parameterType -> {
            String fullName = parameterType.getCanonicalText();
            int genericIndex = fullName.indexOf('<');
            if (genericIndex <= 0) {
              return false;
            }
            String className = fullName.substring(0, genericIndex);
            return LithoClassNames.EVENT_HANDLER_CLASS_NAME.equals(className);
          })
      .map(parameterType -> ((PsiClassType) parameterType).getParameters())
      .filter(generics -> generics.length == 1) // <T>
      .map(generics -> generics[0].getCanonicalText())
      .orElse(null);
}
 
源代码2 项目: intellij-haxe   文件: HaxeClassResolveResult.java
public JavaResolveResult toJavaResolveResult() {
  return new JavaResult(this);
}
 
@NotNull
@Override
public JavaResolveResult resolveMethodGenerics() {
  return JavaResolveResult.EMPTY;
}
 
 类所在包
 类方法
 同包方法