@NotNull
  private static Map<Integer, Set<String>> getFieldAnnotations(@NotNull PsiElement startElement) {
    Int2ObjectMap<Set<String>> result = new Int2ObjectOpenHashMap<>();
    int dimensionCounter = 0;
    PsiElement nextSibling = PsiTreeUtil.skipWhitespacesAndCommentsForward(startElement);
    while (nextSibling != null) {
      if (nextSibling instanceof PsiAnnotation) {
        Set<String> annotations = result.computeIfAbsent(dimensionCounter, v -> new HashSet<>());
        annotations.add(((PsiAnnotation)nextSibling).getQualifiedName());
      }
      else if (PsiUtil.isJavaToken(nextSibling, JavaTokenType.RBRACKET)) {
        dimensionCounter++;
      }
      nextSibling = PsiTreeUtil.skipWhitespacesAndCommentsForward(nextSibling);
    }
    return result;
  }
@NotNull
  private static Map<Integer, Set<String>> getFieldAnnotations(@NotNull PsiElement startElement)