@CheckReturnValue
  Context transitionToAfterTag() {
    Context.Builder builder = toBuilder();
    builder.withoutAttrContext();
    switch (elType) {
      case SCRIPT:
        builder
            .withState(HtmlContext.JS)
            .withSlashType(Context.JsFollowingSlash.REGEX)
            .withElType(Context.ElementType.NONE);
        break;
      case STYLE:
        builder.withState(HtmlContext.CSS).withElType(Context.ElementType.NONE);
        break;
      case TEXTAREA:
      case TITLE:
      case XMP:
        builder.withState(HtmlContext.HTML_RCDATA);
        break;
        // All normal or void tags fit here.
      case NORMAL:
      case BASE:
      case LINK_EXECUTABLE:
      case META_REFRESH:
      case IFRAME:
      case MEDIA:
        builder.withState(HtmlContext.HTML_PCDATA).withElType(Context.ElementType.NONE);
        break;
      case NONE:
        throw new IllegalStateException();
    }
    return builder.build();
  }
@ CheckReturnValue Context transitionToAfterTag ( ) { Context . Builder builder = toBuilder ( ) ; builder . withoutAttrContext ( ) ; switch ( elType ) { case SCRIPT : builder . withState ( HtmlContext . JS ) . withSlashType ( Context . JsFollowingSlash . REGEX ) . withElType ( Context . ElementType . NONE ) ; break ; case STYLE : builder . withState ( HtmlContext . CSS ) . withElType ( Context . ElementType . NONE ) ; break ; case TEXTAREA : case TITLE : case XMP : builder . withState ( HtmlContext . HTML_RCDATA ) ; break ; case NORMAL : case BASE : case LINK_EXECUTABLE : case META_REFRESH : case IFRAME : case MEDIA : builder . withState ( HtmlContext . HTML_PCDATA ) . withElType ( Context . ElementType . NONE ) ; break ; case NONE : throw new IllegalStateException ( ) ; } return builder . build ( ) ; }
Returns a new context in whatever state is appropriate given the current {@code elType}.