@Override
 public Object genSamenessKey() {
   // If two MsgHtmlTagNodes are both only raw text, then they are considered the same placeholder
   // if they both have the same user-supplied placeholder name (if any) and the same tag text.
   // If one of the MsgHtmlTagNodes is not only raw text, then the two MsgHtmlTagNodes are never
   // considered the same placeholder.
   return isOnlyRawText
       ? Pair.of(userSuppliedPlaceholderName, fullTagText)
       : Integer.valueOf(getId());
 }
 @Override
 public Pair<Reader, Version> open() throws IOException {
   return Pair.of((Reader) contentSupplier.getInput(), Version.STABLE_VERSION);
 }