boolean ( @NotNull PsiAnnotation psiAnnotation, @NotNull PsiClass psiClass, @NotNull ProblemSink builder ) { if (!super.validate(psiAnnotation, psiClass, builder)) { return false; } final LoggerInitializerDeclaration declaration = CustomLogParser.parseInitializerParameters(getCustomDeclaration(psiClass)); if (declaration == null) { builder.addErrorMessage("inspection.message.custom.log.not.configured.correctly"); return false; } final String topic = PsiAnnotationUtil.getStringAnnotationValue(psiAnnotation, "topic", ""); final boolean topicPresent = !StringUtil.isEmptyOrSpaces(topic); if (topicPresent) { if (!declaration.hasWithTopic()) { builder.addErrorMessage("inspection.message.custom.log.does.not.allow.topic"); return false; } } else { if (!declaration.hasWithoutTopic()) { builder.addErrorMessage("inspection.message.custom.log.requires.topic"); return false; } } return true; }