@Override public void visitNewExpression(PsiNewExpression expression) { final PsiJavaCodeReferenceElement classReference = expression.getClassReference(); if (classReference != null) { final PsiElement resolved = classReference.resolve(); if (resolved instanceof PsiClass) { final String qualifiedName = ((PsiClass) resolved).getQualifiedName(); if (qualifiedName != null && sdkInternals.isMethodInBlacklist(qualifiedName, "new")) { final String message = "App Engine application should not create new instances of '" + qualifiedName + "' class"; problems.add( manager.createProblemDescriptor( classReference, message, isOnTheFly, LocalQuickFix.EMPTY_ARRAY, ProblemHighlightType.GENERIC_ERROR_OR_WARNING)); } } } super.visitNewExpression(expression); }
@Override public void visitMethodCallExpression(PsiMethodCallExpression expression) { final PsiReferenceExpression methodExpression = expression.getMethodExpression(); final PsiElement element = methodExpression.resolve(); if (element instanceof PsiMethod) { final PsiMethod method = (PsiMethod) element; final PsiClass psiClass = method.getContainingClass(); if (psiClass != null) { final String qualifiedName = psiClass.getQualifiedName(); final String methodName = method.getName(); if (qualifiedName != null && sdkInternals.isMethodInBlacklist(qualifiedName, methodName)) { final String message = "AppEngine application should not call '" + StringUtil.getShortName(qualifiedName) + "" + methodName + "' method"; problems.add( manager.createProblemDescriptor( methodExpression, message, isOnTheFly, LocalQuickFix.EMPTY_ARRAY, ProblemHighlightType.GENERIC_ERROR_OR_WARNING)); } } } super.visitMethodCallExpression(expression); }