void (PsiModifierListOwner psiElement, PsiMethod psiMethod, String defaultExpression, boolean capture, List<CapturePoint> capturePointsFromAnnotations) { CapturePoint capturePoint = new CapturePoint(); capturePoint.myEnabled = false; if (capture) { capturePoint.myClassName = JVMNameUtil.getNonAnonymousClassName(psiMethod.getContainingClass()); capturePoint.myMethodName = JVMNameUtil.getJVMMethodName(psiMethod); } else { capturePoint.myInsertClassName = JVMNameUtil.getNonAnonymousClassName(psiMethod.getContainingClass()); capturePoint.myInsertMethodName = JVMNameUtil.getJVMMethodName(psiMethod); } PsiModifierList modifierList = psiElement.getModifierList(); if (modifierList != null) { PsiAnnotation annotation = modifierList.findAnnotation(getAnnotationName(capture)); if (annotation != null) { PsiAnnotationMemberValue keyExpressionValue = annotation.findAttributeValue("keyExpression"); String keyExpression = keyExpressionValue != null ? StringUtil.unquoteString(keyExpressionValue.getText()) : null; if (StringUtil.isEmpty(keyExpression)) { keyExpression = defaultExpression; } if (capture) { capturePoint.myCaptureKeyExpression = keyExpression; } else { capturePoint.myInsertKeyExpression = keyExpression; } PsiAnnotationMemberValue groupValue = annotation.findAttributeValue("group"); String group = groupValue != null ? StringUtil.unquoteString(groupValue.getText()) : null; if (!StringUtil.isEmpty(group)) { for (CapturePoint capturePointsFromAnnotation : capturePointsFromAnnotations) { if (StringUtil.startsWith(group, capturePointsFromAnnotation.myClassName) && StringUtil.endsWith(group, capturePointsFromAnnotation.myMethodName)) { capturePointsFromAnnotation.myInsertClassName = capturePoint.myInsertClassName; capturePointsFromAnnotation.myInsertMethodName = capturePoint.myInsertMethodName; capturePointsFromAnnotation.myInsertKeyExpression = capturePoint.myInsertKeyExpression; return; } } } } } capturePointsFromAnnotations.add(capturePoint); }