@SuppressWarnings({"rawtypes", "unchecked"})
  private static boolean addTextIntern(ArrayList list, int index, AstStringNode text) {
    if (text.getContent().isEmpty()) {
      return false;
    } else {
      if (index > 0 && !text.hasAttributes()) {
        AstNode prev = (AstNode) list.get(index - 1);
        if (prev.getNodeType() == AstNode.NT_TEXT && !prev.hasAttributes()) {
          try {
            list.set(index - 1, mergeTextNodes((AstStringNode) prev, text));
            return true;
          } catch (CloneNotSupportedException e) {
            // Just add, don't merge
          }
        }
      }

      list.add(index, text);
      return true;
    }
  }