Class HtmlVisitor

java.lang.Object
org.xmlet.htmlapifaster.ElementVisitor
htmlflow.visitor.HtmlVisitor
Direct Known Subclasses:
HtmlDocVisitor, HtmlViewVisitor, PreprocessingVisitor

public abstract class HtmlVisitor extends org.xmlet.htmlapifaster.ElementVisitor
This is the base implementation of the ElementVisitor (from HtmlApiFaster library).
Author:
Miguel Gamboa created on 04-08-2022
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected int
    keep track of current indentation.
    protected boolean
    If the beginning tag is closed, or not, i.e.
    final boolean
    It the HTML output should be indented or not.
    protected Appendable
     
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract HtmlVisitor
    clone(boolean isIndented)
    Since HtmlVisitor is immutable this is the preferred way to create a copy of the existing HtmlVisitor instance with a different isIndented state.
    final int
    keep track of current indentation.
    final void
    Adds a new line and indentation.
    out()
     
    abstract void
    resolve(Object model)
    Processing output.
     
    final void
    setDepth(int v)
    Set current indentation.
    final void
    setIsClosed(boolean isClosed)
     
    final void
    visitAttribute(String attributeName, String attributeValue)
     
    final <R> void
    visitComment(org.xmlet.htmlapifaster.Text<? extends org.xmlet.htmlapifaster.Element,R> text)
     
    final void
    visitElement(org.xmlet.htmlapifaster.Element element)
    This method appends the String "<elementName" and it leaves the element open to include additional attributes.
    final <Z extends org.xmlet.htmlapifaster.Element>
    void
    visitElementRoot(org.xmlet.htmlapifaster.Root<Z> var1)
     
    final void
    visitParent(org.xmlet.htmlapifaster.Element element)
    Writes the end tag for elementName: "</elementName>.".
    final <Z extends org.xmlet.htmlapifaster.Element>
    void
    visitParentArea(org.xmlet.htmlapifaster.Area<Z> element)
     
    final <Z extends org.xmlet.htmlapifaster.Element>
    void
    visitParentBase(org.xmlet.htmlapifaster.Base<Z> element)
     
    final <Z extends org.xmlet.htmlapifaster.Element>
    void
    visitParentBr(org.xmlet.htmlapifaster.Br<Z> element)
     
    final <Z extends org.xmlet.htmlapifaster.Element>
    void
    visitParentCol(org.xmlet.htmlapifaster.Col<Z> element)
     
    final <Z extends org.xmlet.htmlapifaster.Element>
    void
    visitParentEmbed(org.xmlet.htmlapifaster.Embed<Z> element)
     
    final <Z extends org.xmlet.htmlapifaster.Element>
    void
    visitParentHr(org.xmlet.htmlapifaster.Hr<Z> element)
     
    final <Z extends org.xmlet.htmlapifaster.Element>
    void
    visitParentImg(org.xmlet.htmlapifaster.Img<Z> element)
     
    final <Z extends org.xmlet.htmlapifaster.Element>
    void
    visitParentInput(org.xmlet.htmlapifaster.Input<Z> element)
     
    final <Z extends org.xmlet.htmlapifaster.Element>
    void
    visitParentLink(org.xmlet.htmlapifaster.Link<Z> element)
     
    final <Z extends org.xmlet.htmlapifaster.Element>
    void
    visitParentMeta(org.xmlet.htmlapifaster.Meta<Z> element)
     
    protected final void
    Void elements: area, base, br, col, embed, hr, img, input, link, meta, param, source, track, wbr.
    final <Z extends org.xmlet.htmlapifaster.Element>
    void
    visitParentParam(org.xmlet.htmlapifaster.Param<Z> element)
     
    final <Z extends org.xmlet.htmlapifaster.Element>
    void
    visitParentRoot(org.xmlet.htmlapifaster.Root<Z> var1)
     
    final <Z extends org.xmlet.htmlapifaster.Element>
    void
    visitParentSource(org.xmlet.htmlapifaster.Source<Z> element)
     
    final <R> void
    visitText(org.xmlet.htmlapifaster.Text<? extends org.xmlet.htmlapifaster.Element,R> text)
     
    protected final void
    write(char c)
     
    final void
    write(String text)
     

    Methods inherited from class org.xmlet.htmlapifaster.ElementVisitor

    visitAttributeAbbr, visitAttributeAccept, visitAttributeAcceptCharset, visitAttributeAccesskey, visitAttributeAction, visitAttributeAllowfullscreen, visitAttributeAllowpaymentrequest, visitAttributeAlt, visitAttributeAltimg, visitAttributeAltimgHeigth, visitAttributeAltimgValign, visitAttributeAltimgWidth, visitAttributeAlttext, visitAttributeAsync, visitAttributeAutocomplete, visitAttributeAutoComplete, visitAttributeAutofocus, visitAttributeAutoplay, visitAttributeBorder, visitAttributeCdgroup, visitAttributeCell, visitAttributeCharset, visitAttributeChecked, visitAttributeCite, visitAttributeClass, visitAttributeCols, visitAttributeColspan, visitAttributeColumnheader, visitAttributeContent, visitAttributeContenteditable, visitAttributeControls, visitAttributeCoords, visitAttributeCrossorigin, visitAttributeData, visitAttributeDatetime, visitAttributeDefault, visitAttributeDefer, visitAttributeDir, visitAttributeDirname, visitAttributeDirName, visitAttributeDisabled, visitAttributeDisplay, visitAttributeDownload, visitAttributeDraggable, visitAttributeEnctype, visitAttributeFor, visitAttributeForm, visitAttributeFormaction, visitAttributeFormenctype, visitAttributeFormmethod, visitAttributeFormnovalidate, visitAttributeFormtarget, visitAttributeHeaders, visitAttributeHeight, visitAttributeHidden, visitAttributeHigh, visitAttributeHref, visitAttributeHreflang, visitAttributeHttpEquiv, visitAttributeId, visitAttributeIsmap, visitAttributeKind, visitAttributeLabel, visitAttributeLang, visitAttributeList, visitAttributeLongdesc, visitAttributeLoop, visitAttributeLow, visitAttributeManifest, visitAttributeMax, visitAttributeMaxlength, visitAttributeMaxwidth, visitAttributeMedia, visitAttributeMethod, visitAttributeMin, visitAttributeMinlength, visitAttributeMultiple, visitAttributeMuted, visitAttributeName, visitAttributeNonce, visitAttributeNovalidate, visitAttributeOnabort, visitAttributeOnafterprint, visitAttributeOnauxclick, visitAttributeOnbeforeprint, visitAttributeOnbeforeunload, visitAttributeOnblur, visitAttributeOncancel, visitAttributeOncanplay, visitAttributeOncanplaythrough, visitAttributeOnchange, visitAttributeOnclick, visitAttributeOnclose, visitAttributeOncuechange, visitAttributeOndblclick, visitAttributeOndrag, visitAttributeOndragend, visitAttributeOndragenter, visitAttributeOndragexit, visitAttributeOndragleave, visitAttributeOndragover, visitAttributeOndragstart, visitAttributeOndrop, visitAttributeOndurationchange, visitAttributeOnemptied, visitAttributeOnended, visitAttributeOnerror, visitAttributeOnfocus, visitAttributeOnhashchange, visitAttributeOninput, visitAttributeOninvalid, visitAttributeOnkeydown, visitAttributeOnkeypress, visitAttributeOnkeyup, visitAttributeOnlanguagechange, visitAttributeOnload, visitAttributeOnloadeddata, visitAttributeOnloadedmetadata, visitAttributeOnloadend, visitAttributeOnloadstart, visitAttributeOnmessage, visitAttributeOnmousedown, visitAttributeOnmouseenter, visitAttributeOnmouseleave, visitAttributeOnmousemove, visitAttributeOnmouseout, visitAttributeOnmouseover, visitAttributeOnmouseup, visitAttributeOnoffline, visitAttributeOnonline, visitAttributeOnpagehide, visitAttributeOnpageshow, visitAttributeOnpause, visitAttributeOnplay, visitAttributeOnplaying, visitAttributeOnpopstate, visitAttributeOnprogress, visitAttributeOnratechange, visitAttributeOnrejectionhandled, visitAttributeOnreset, visitAttributeOnresize, visitAttributeOnscroll, visitAttributeOnseeked, visitAttributeOnseeking, visitAttributeOnselect, visitAttributeOnshow, visitAttributeOnstalled, visitAttributeOnstorage, visitAttributeOnsubmit, visitAttributeOnsuspend, visitAttributeOntimeupdate, visitAttributeOntoogle, visitAttributeOnunhandledrejection, visitAttributeOnunload, visitAttributeOnvolumenchange, visitAttributeOnwaiting, visitAttributeOnwheel, visitAttributeOpen, visitAttributeOptimum, visitAttributeOverflow, visitAttributePattern, visitAttributePlaceholder, visitAttributePoster, visitAttributePreload, visitAttributeReadonly, visitAttributeReferrerpolicy, visitAttributeRel, visitAttributeRequired, visitAttributeRev, visitAttributeReversed, visitAttributeRow, visitAttributeRowgroup, visitAttributeRowheader, visitAttributeRows, visitAttributeRowspan, visitAttributeSandbox, visitAttributeScope, visitAttributeSelected, visitAttributeShape, visitAttributeSize, visitAttributeSizes, visitAttributeSpan, visitAttributeSpellcheck, visitAttributeSrc, visitAttributeSrcDoc, visitAttributeSrclang, visitAttributeSrcset, visitAttributeSrcSet, visitAttributeStart, visitAttributeStep, visitAttributeStyle, visitAttributeTabIndex, visitAttributeTarget, visitAttributeTitle, visitAttributeTranslate, visitAttributeType, visitAttributeTypemustmatch, visitAttributeUsemap, visitAttributeValue, visitAttributeWidth, visitAttributeWrap, visitAttributeX, visitAttributeY, visitAwait, visitDynamic, visitElementA, visitElementAbbr, visitElementAddress, visitElementArea, visitElementArticle, visitElementAside, visitElementAudio, visitElementB, visitElementBase, visitElementBdi, visitElementBdo, visitElementBlockquote, visitElementBody, visitElementBr, visitElementButton, visitElementCanvas, visitElementCaption, visitElementCite, visitElementCode, visitElementCol, visitElementColgroup, visitElementData, visitElementDatalist, visitElementDd, visitElementDel, visitElementDetails, visitElementDetailsComplete, visitElementDetailsSummary, visitElementDfn, visitElementDialog, visitElementDiv, visitElementDl, visitElementDt, visitElementEm, visitElementEmbed, visitElementFieldset, visitElementFigcaption, visitElementFigure, visitElementFooter, visitElementForm, visitElementH1, visitElementH2, visitElementH3, visitElementH4, visitElementH5, visitElementH6, visitElementHead, visitElementHeader, visitElementHr, visitElementHtml, visitElementI, visitElementIframe, visitElementImg, visitElementInput, visitElementIns, visitElementKbd, visitElementLabel, visitElementLegend, visitElementLi, visitElementLink, visitElementMain, visitElementMap, visitElementMark, visitElementMath, visitElementMeta, visitElementMeter, visitElementNav, visitElementNoscript, visitElementObject, visitElementOl, visitElementOptgroup, visitElementOption, visitElementOutput, visitElementP, visitElementParam, visitElementPicture, visitElementPre, visitElementProgress, visitElementQ, visitElementRb, visitElementRp, visitElementRt, visitElementRtc, visitElementRuby, visitElementS, visitElementSamp, visitElementScript, visitElementSection, visitElementSelect, visitElementSmall, visitElementSource, visitElementSpan, visitElementStrong, visitElementStyle, visitElementSub, visitElementSummary, visitElementSup, visitElementSvg, visitElementTable, visitElementTbody, visitElementTd, visitElementTemplate, visitElementTextarea, visitElementTfoot, visitElementTh, visitElementThead, visitElementTime, visitElementTitle, visitElementTr, visitElementTrack, visitElementU, visitElementUl, visitElementVar, visitElementVideo, visitElementWbr, visitParentA, visitParentAbbr, visitParentAddress, visitParentArticle, visitParentAside, visitParentAudio, visitParentB, visitParentBdi, visitParentBdo, visitParentBlockquote, visitParentBody, visitParentButton, visitParentCanvas, visitParentCaption, visitParentCite, visitParentCode, visitParentColgroup, visitParentData, visitParentDatalist, visitParentDd, visitParentDel, visitParentDetails, visitParentDetailsComplete, visitParentDetailsSummary, visitParentDfn, visitParentDialog, visitParentDiv, visitParentDl, visitParentDt, visitParentEm, visitParentFieldset, visitParentFigcaption, visitParentFigure, visitParentFooter, visitParentForm, visitParentH1, visitParentH2, visitParentH3, visitParentH4, visitParentH5, visitParentH6, visitParentHead, visitParentHeader, visitParentHtml, visitParentI, visitParentIframe, visitParentIns, visitParentKbd, visitParentLabel, visitParentLegend, visitParentLi, visitParentMain, visitParentMap, visitParentMark, visitParentMath, visitParentMeter, visitParentNav, visitParentNoscript, visitParentObject, visitParentOl, visitParentOptgroup, visitParentOption, visitParentOutput, visitParentP, visitParentPicture, visitParentPre, visitParentProgress, visitParentQ, visitParentRb, visitParentRp, visitParentRt, visitParentRtc, visitParentRuby, visitParentS, visitParentSamp, visitParentScript, visitParentSection, visitParentSelect, visitParentSmall, visitParentSpan, visitParentStrong, visitParentStyle, visitParentSub, visitParentSummary, visitParentSup, visitParentSvg, visitParentTable, visitParentTbody, visitParentTd, visitParentTemplate, visitParentTextarea, visitParentTfoot, visitParentTh, visitParentThead, visitParentTime, visitParentTitle, visitParentTr, visitParentTrack, visitParentU, visitParentUl, visitParentVar, visitParentVideo, visitParentWbr

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • out

      protected Appendable out
    • depth

      protected int depth
      keep track of current indentation.
    • isClosed

      protected boolean isClosed
      If the beginning tag is closed, or not, i.e. if it is "<elem>" or it is "<elem". On element visit the beginning tag is left open to include additional attributes.
    • isIndented

      public final boolean isIndented
      It the HTML output should be indented or not.
  • Method Details

    • getDepth

      public final int getDepth()
      keep track of current indentation.
    • setDepth

      public final void setDepth(int v)
      Set current indentation.
    • setIsClosed

      public final void setIsClosed(boolean isClosed)
    • out

      public final Appendable out()
    • setAppendable

      public final HtmlVisitor setAppendable(Appendable appendable)
    • write

      public final void write(String text)
    • write

      protected final void write(char c)
    • newlineAndIndent

      public final void newlineAndIndent()
      Adds a new line and indentation. Checks whether the parent element is still opened or not (!isClosed). If it is open then it closes the parent begin tag with ">" (!isClosed).
    • visitElement

      public final void visitElement(org.xmlet.htmlapifaster.Element element)
      This method appends the String "<elementName" and it leaves the element open to include additional attributes. Before that it may close the parent begin tag with ">" if it is still opened (!isClosed). The newlineAndIndent() is responsible for this job to check whether the parent element is still opened or not.
      Specified by:
      visitElement in class org.xmlet.htmlapifaster.ElementVisitor
      Parameters:
      element -
    • visitParent

      public final void visitParent(org.xmlet.htmlapifaster.Element element)
      Writes the end tag for elementName: "</elementName>.". This visit occurs when the ยบ() is invoked.
      Specified by:
      visitParent in class org.xmlet.htmlapifaster.ElementVisitor
    • visitParentOnVoidElements

      protected final void visitParentOnVoidElements()
      Void elements: area, base, br, col, embed, hr, img, input, link, meta, param, source, track, wbr. This method is invoked by visitParent specialization methods (at the end of this class) for each void element such as area, base, etc.
    • visitAttribute

      public final void visitAttribute(String attributeName, String attributeValue)
      Specified by:
      visitAttribute in class org.xmlet.htmlapifaster.ElementVisitor
    • visitText

      public final <R> void visitText(org.xmlet.htmlapifaster.Text<? extends org.xmlet.htmlapifaster.Element,R> text)
      Specified by:
      visitText in class org.xmlet.htmlapifaster.ElementVisitor
    • visitComment

      public final <R> void visitComment(org.xmlet.htmlapifaster.Text<? extends org.xmlet.htmlapifaster.Element,R> text)
      Specified by:
      visitComment in class org.xmlet.htmlapifaster.ElementVisitor
    • resolve

      public abstract void resolve(Object model)
      Processing output.
    • clone

      public abstract HtmlVisitor clone(boolean isIndented)
      Since HtmlVisitor is immutable this is the preferred way to create a copy of the existing HtmlVisitor instance with a different isIndented state.
      Parameters:
      isIndented - If the new visitor should indent HTML output or not.
    • visitElementRoot

      public final <Z extends org.xmlet.htmlapifaster.Element> void visitElementRoot(org.xmlet.htmlapifaster.Root<Z> var1)
      Overrides:
      visitElementRoot in class org.xmlet.htmlapifaster.ElementVisitor
    • visitParentRoot

      public final <Z extends org.xmlet.htmlapifaster.Element> void visitParentRoot(org.xmlet.htmlapifaster.Root<Z> var1)
      Overrides:
      visitParentRoot in class org.xmlet.htmlapifaster.ElementVisitor
    • visitParentHr

      public final <Z extends org.xmlet.htmlapifaster.Element> void visitParentHr(org.xmlet.htmlapifaster.Hr<Z> element)
      Overrides:
      visitParentHr in class org.xmlet.htmlapifaster.ElementVisitor
    • visitParentEmbed

      public final <Z extends org.xmlet.htmlapifaster.Element> void visitParentEmbed(org.xmlet.htmlapifaster.Embed<Z> element)
      Overrides:
      visitParentEmbed in class org.xmlet.htmlapifaster.ElementVisitor
    • visitParentInput

      public final <Z extends org.xmlet.htmlapifaster.Element> void visitParentInput(org.xmlet.htmlapifaster.Input<Z> element)
      Overrides:
      visitParentInput in class org.xmlet.htmlapifaster.ElementVisitor
    • visitParentMeta

      public final <Z extends org.xmlet.htmlapifaster.Element> void visitParentMeta(org.xmlet.htmlapifaster.Meta<Z> element)
      Overrides:
      visitParentMeta in class org.xmlet.htmlapifaster.ElementVisitor
    • visitParentBr

      public final <Z extends org.xmlet.htmlapifaster.Element> void visitParentBr(org.xmlet.htmlapifaster.Br<Z> element)
      Overrides:
      visitParentBr in class org.xmlet.htmlapifaster.ElementVisitor
    • visitParentCol

      public final <Z extends org.xmlet.htmlapifaster.Element> void visitParentCol(org.xmlet.htmlapifaster.Col<Z> element)
      Overrides:
      visitParentCol in class org.xmlet.htmlapifaster.ElementVisitor
    • visitParentSource

      public final <Z extends org.xmlet.htmlapifaster.Element> void visitParentSource(org.xmlet.htmlapifaster.Source<Z> element)
      Overrides:
      visitParentSource in class org.xmlet.htmlapifaster.ElementVisitor
    • visitParentImg

      public final <Z extends org.xmlet.htmlapifaster.Element> void visitParentImg(org.xmlet.htmlapifaster.Img<Z> element)
      Overrides:
      visitParentImg in class org.xmlet.htmlapifaster.ElementVisitor
    • visitParentArea

      public final <Z extends org.xmlet.htmlapifaster.Element> void visitParentArea(org.xmlet.htmlapifaster.Area<Z> element)
      Overrides:
      visitParentArea in class org.xmlet.htmlapifaster.ElementVisitor
    • visitParentLink

      public final <Z extends org.xmlet.htmlapifaster.Element> void visitParentLink(org.xmlet.htmlapifaster.Link<Z> element)
      Overrides:
      visitParentLink in class org.xmlet.htmlapifaster.ElementVisitor
    • visitParentParam

      public final <Z extends org.xmlet.htmlapifaster.Element> void visitParentParam(org.xmlet.htmlapifaster.Param<Z> element)
      Overrides:
      visitParentParam in class org.xmlet.htmlapifaster.ElementVisitor
    • visitParentBase

      public final <Z extends org.xmlet.htmlapifaster.Element> void visitParentBase(org.xmlet.htmlapifaster.Base<Z> element)
      Overrides:
      visitParentBase in class org.xmlet.htmlapifaster.ElementVisitor