boolean (@NotNull VirtualFile file, int line, @NotNull Project project) { if (!Registry.is("debugger.collection.watchpoints.enabled")) { return false; } return canPutAtElement(file, line, project, (element, document) -> { if (element instanceof PsiField) { boolean isFinal = ((PsiField)element).hasModifierProperty(PsiModifier.FINAL); boolean isPrivate = ((PsiField)element).hasModifierProperty(PsiModifier.PRIVATE); boolean isProtected = ((PsiField)element).hasModifierProperty(PsiModifier.PROTECTED); boolean hasValidModifiers = isFinal || isPrivate || isProtected; PsiType type = ((PsiField)element).getType(); return hasValidModifiers && CollectionUtils.isCollectionClassOrInterface(type); } return false; }); }