Package htmlflow.visitor
Class PreprocessingVisitor
java.lang.Object
org.xmlet.htmlapifaster.ElementVisitor
htmlflow.visitor.HtmlVisitor
htmlflow.visitor.PreprocessingVisitor
- Direct Known Subclasses:
PreprocessingVisitorAsync
This visitor is used to make a preprocessing resolution of an HtmlTemplate.
It will collect the resulting HTML from visiting static HTML elements into an auxiliary
StringBuilder that later is extracted to: String staticHtml = sb.substring(staticBlockIndex);
to create an HtmlContinuationSyncStatic object.
It also interleaves the creation of HtmlContinuationDynamic nodes that only store dynamicHtmlBlock
objects corresponding to a BiConsumer<E, U> (being E an element and U the model).
The U comes from external module HtmlApiFaster whose classes are not strongly typed with the Model.
Thus, only the dynamic() and visitDynamic() methods in HtmlApiFaster were made generic to carry
a type parameter U corresponding to the type of the Model.
-
Field Summary
Fields inherited from class htmlflow.visitor.HtmlVisitor
depth, isClosed, isIndented, out -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final voidchainContinuationStatic(HtmlContinuation nextContinuation) final HtmlVisitorclone(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 HtmlContinuationgetFirst()protected final voidvoidCreates the last static HTML block.final StringBuildersb()The main StringBuilder.<M,E extends org.xmlet.htmlapifaster.Element>
voidvisitAwait(E element, org.xmlet.htmlapifaster.async.AwaitConsumer<E, M> asyncAction) <E extends org.xmlet.htmlapifaster.Element,U>
voidvisitDynamic(E element, BiConsumer<E, U> dynamicHtmlBlock) Here we are creating 2 HtmlContinuation objects: one for previous static HTML and a next one corresponding to the consumer passed to dynamic().Methods inherited from class htmlflow.visitor.HtmlVisitor
getDepth, newlineAndIndent, out, setAppendable, setDepth, setIsClosed, visitAttribute, visitComment, visitElement, visitElementRoot, visitParent, visitParentArea, visitParentBase, visitParentBr, visitParentCol, visitParentEmbed, visitParentHr, visitParentImg, visitParentInput, visitParentLink, visitParentMeta, visitParentOnVoidElements, visitParentParam, visitParentRoot, visitParentSource, visitText, write, writeMethods 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, 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
-
Constructor Details
-
PreprocessingVisitor
public PreprocessingVisitor(boolean isIndented)
-
-
Method Details
-
sb
The main StringBuilder. -
getFirst
-
visitDynamic
public <E extends org.xmlet.htmlapifaster.Element,U> void visitDynamic(E element, BiConsumer<E, U> dynamicHtmlBlock) Here we are creating 2 HtmlContinuation objects: one for previous static HTML and a next one corresponding to the consumer passed to dynamic(). We will first create the dynamic continuation that will be the next node of the static continuation. U is the type of the model passed to the dynamic HTML block that is the same as T in this visitor. Yet, since it came from HtmlApiFaster that is not typed by the Model, then we have to use another generic argument for the type of the model.- Specified by:
visitDynamicin classorg.xmlet.htmlapifaster.ElementVisitor- Type Parameters:
E- Type of the parent Element.U- Type of the model passed to the dynamic HTML block that is the same as T in this visitor.- Parameters:
element- The parent element.dynamicHtmlBlock- The continuation that consumes the element and a model.
-
visitAwait
public <M,E extends org.xmlet.htmlapifaster.Element> void visitAwait(E element, org.xmlet.htmlapifaster.async.AwaitConsumer<E, M> asyncAction) - Specified by:
visitAwaitin classorg.xmlet.htmlapifaster.ElementVisitor
-
chainContinuationStatic
-
indentAndAdvanceStaticBlockIndex
protected final void indentAndAdvanceStaticBlockIndex() -
resolve
Creates the last static HTML block.- Specified by:
resolvein classHtmlVisitor
-
clone
Description copied from class:HtmlVisitorSince HtmlVisitor is immutable this is the preferred way to create a copy of the existing HtmlVisitor instance with a different isIndented state.- Specified by:
clonein classHtmlVisitor- Parameters:
isIndented- If the new visitor should indent HTML output or not.
-