@Override
 public void visit(UnformattedTextNode unformattedTextNode) {
   if (unformattedTextNode.hasContent()) {
     write(unformattedTextNode.getContent());
   } else {
     super.visit(unformattedTextNode);
   }
 }
 @Override
 public void visit(FormattedTextNode formattedTextNode) {
   if (formattedTextNode.getContent() != null) {
     write(formattedTextNode.getContent());
   } else {
     super.visit(formattedTextNode);
   }
 }
 @Override
 public void visit(ItalicTextNode italicTextNode) {
   if (italicTextNode.getContent() != null) {
     write(italicTextNode.getContent());
   } else {
     super.visit(italicTextNode);
   }
 }
 @Override
 public void visit(BoldTextNode boldTextNode) {
   if (boldTextNode.getContent() != null) {
     write(boldTextNode.getContent());
   } else {
     super.visit(boldTextNode);
   }
 }
  @Override
  public void visit(LinkNode linkNode) {
    String link = linkNode.getLink();

    if (link != null) {
      write(link);
    }

    super.visit(linkNode);
  }