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

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

源代码1 项目: Folivora   文件: InternalFolivoraApiDetector.java
@Override
public void visitMethod(@NotNull JavaContext context,
                        @NotNull UCallExpression call,
                        @NotNull PsiMethod method) {
  JavaEvaluator evaluator = context.getEvaluator();

  //check Folivora.applyDrawableToView() call
  String methodName = method.getName();
  if (!methodName.equals(APPLY_METHOD) || !evaluator.isMemberInClass(method, FOLIVORA_CLASS)) return;

  PsiClass viewClass = evaluator.findClass(VIEW_CLASS);
  PsiClass currentClass = UastUtils.getContainingClass(call);
  if(currentClass == null || viewClass == null) return;
  if (!currentClass.isInheritor(viewClass, true/*deep check*/)) {
    report(context, call);
    return;
  }

  UMethod uMethod = UastUtils.getParentOfType(call, UMethod.class, false);
  if(uMethod == null) return;

  //check it is a view's constructor
  if (!uMethod.isConstructor()) {
    report(context, call);
    return;
  }

  MethodSignature signature = uMethod.getSignature(PsiSubstitutor.EMPTY);
  PsiType[] types = signature.getParameterTypes();
  if (types.length != 2) {
    report(context, call);
    return;
  }

  if (!types[0].equalsToText(CONTEXT_CLASS)
    || !types[1].equalsToText(ATTRS_CLASS)) {
    report(context, call);
  }
}
 
源代码2 项目: intellij-haxe   文件: HaxeClassResolveResult.java
@NotNull
@Override public PsiSubstitutor getSubstitutor() { return PsiSubstitutor.EMPTY; }
 
源代码3 项目: innerbuilder   文件: InnerBuilderCollector.java
private static PsiFieldMember buildFieldMember(final PsiField field, final PsiClass containingClass,
        final PsiClass clazz) {
    return new PsiFieldMember(field,
            TypeConversionUtil.getSuperClassSubstitutor(containingClass, clazz, PsiSubstitutor.EMPTY));
}
 
 类所在包
 类方法
 同包方法