Java源码示例:org.jetbrains.uast.UQualifiedReferenceExpression

示例1
@Override
public boolean visitQualifiedReferenceExpression(@NotNull final UQualifiedReferenceExpression node) {
	for (IssueDetector issueDetector : mIssueDetectors) {
		issueDetector.visit(node);
	}
	return super.visitQualifiedReferenceExpression(node);
}
 
示例2
@Override
public void visit(final UQualifiedReferenceExpression node) {
	final PsiField referencedField = ElementUtils.getReferencedField(node.getJavaPsi());
	if (referencedField != null) {
		visitFieldReference(node, referencedField);
	}
}
 
示例3
private void visitFieldReference(final @NotNull UQualifiedReferenceExpression node, final PsiField field) {
	final PsiClass containingClass = ElementUtils.getContainingClass(node);
	if (!ConfigElementsUtils.hasFeatureRemoteConfigAnnotation(containingClass)) {
		final boolean remoteConfigField = ConfigElementsUtils.hasConfigAnnotation(field);
		if (remoteConfigField) {
			report(node, ISSUE.getExplanation(TextFormat.TEXT) + " **" + CommonNamingUtils.getProviderClassName(field.getContainingClass()
			                                                                                                         .getName()) + "**");
		}
	}
}
 
示例4
public void visit(final UQualifiedReferenceExpression node) {
	// No-op, to be overridden
}
 
示例5
private static boolean isGeneratedMethodCalled(UMethod method, String className, boolean isKotlin) {
    UExpression methodBody = method.getUastBody();
    if (methodBody == null) {
        return false;
    }
    if (methodBody instanceof UBlockExpression) {
        UBlockExpression methodBodyExpression = (UBlockExpression) methodBody;
        List<UExpression> expressions = methodBodyExpression.getExpressions();
        for (UExpression expression : expressions) {
            if (isKotlin && expression instanceof KotlinUFunctionCallExpression) {
                KotlinUFunctionCallExpression functionalExpression = (KotlinUFunctionCallExpression) expression;
                if ("onRequestPermissionsResult".equals(functionalExpression.getMethodName())) {
                    return true;
                }
            }

            if (!(expression instanceof UQualifiedReferenceExpression)) {
                continue;
            }

            UQualifiedReferenceExpression referenceExpression = (UQualifiedReferenceExpression) expression;
            UExpression receiverExpression = referenceExpression.getReceiver();
            PsiElement receiverPsi = receiverExpression.getPsi();
            if (receiverPsi == null) {
                continue; // can this case be happened?
            }
            String receiverName = receiverPsi.getText();
            if ("super".equals(receiverName)) {
                // skip super method call
                continue;
            }

            if (isKotlin && referenceExpression instanceof KotlinUQualifiedReferenceExpression) {
                if ("onRequestPermissionsResult".equals(referenceExpression.getResolvedName())) {
                    return true;
                }
            } else {
                String targetClassName = className + "PermissionsDispatcher";
                if (targetClassName.equals(receiverName) && "onRequestPermissionsResult".equals(referenceExpression.getResolvedName())) {
                    return true;
                }
            }
        }
    }
    return false;
}
 
示例6
@Override public boolean visitQualifiedReferenceExpression(UQualifiedReferenceExpression node) {
  detectR2(context, node);
  return super.visitQualifiedReferenceExpression(node);
}