boolean (@NotNull PsiAnnotation psiAnnotation, @NotNull PsiField psiField, @NotNull ProblemSink builder) { validateOnXAnnotations(psiAnnotation, psiField, builder, "onParam"); boolean valid = validateVisibility(psiAnnotation); valid &= validName(psiField, builder); valid &= validNonStatic(psiField, builder); valid &= validNonFinalInitialized(psiField, builder); valid &= validIsWitherUnique(psiField, builder); final PsiClass containingClass = psiField.getContainingClass(); valid &= null != containingClass && (containingClass.hasModifierProperty(PsiModifier.ABSTRACT) || validConstructor(containingClass, builder)); return valid; }