@Override
  public PsiElement add(@NotNull PsiElement psiElement) throws IncorrectOperationException {
    if (!(psiElement instanceof GrEnumConstant)) return super.add(psiElement);
    final GrTypeDefinitionBody body = getBody();
    assert body != null;
    GrEnumConstantList list = getEnumConstantList();
    if (list != null) {
      GrEnumConstant[] constants = list.getEnumConstants();
      if (constants.length > 0) {
        list.getNode().addLeaf(GroovyTokenTypes.mCOMMA, ",", null);
        list.getNode().addLeaf(GroovyTokenTypes.mNLS, "\n", null);
        return list.add(psiElement);
      }
    }

    PsiElement brace = body.getLBrace();
    return body.addAfter(psiElement, brace);
  }
@Override
  public PsiElement add(@NotNull PsiElement psiElement)