Class PreprocessingVisitorMfe
-
- All Implemented Interfaces:
public class PreprocessingVisitorMfe extends PreprocessingVisitor
Specialized preprocessing visitor that supports Micro Frontend (MFE) components.
This visitor extends the standard PreprocessingVisitor with the ability to process and inject MFE-specific script tags into the HTML head section during the preprocessing phase. It's used when MFE support is enabled in the view factory.
The class performs the following key operations:
- Collects MFE configurations during template processing through the standard visitor mechanism
- Generates necessary script tags for MFE components based on their configurations
- Injects these script tags in the head tags of the HTML document
Implementation details:
- Always injects a base module script:
<script type="module" src="base.js"></script> - Adds module scripts for each configured MFE component that provides a script URL
- Uses reflection to modify the static HTML blocks in the continuation chain
- Targets the first HTML continuation containing the closing head tag
Note: This visitor requires preEncoding to be enabled as it relies on the preprocessing phase to analyze and modify the HTML structure.
-
-
Field Summary
Fields Modifier and Type Field Description public final static StringHEAD_END_TAGpublic final booleanisIndentedpublic final List<HtmlMfeConfig>mfePage
-
Constructor Summary
Constructors Constructor Description PreprocessingVisitorMfe(boolean isIndented)
-
Method Summary
Modifier and Type Method Description voidresolve(Object model)Processes the template and injects MFE script tags. -
Methods inherited from class htmlflow.visitor.HtmlVisitor
addMfePage, getDepth, getMfePage, newlineAndIndent, out, setAppendable, setDepth, setIsClosed, visitAttribute, visitAttributeBoolean, visitComment, visitElement, visitElementRoot, visitMfe, visitParent, visitParentArea, visitParentBase, visitParentBr, visitParentCol, visitParentEmbed, visitParentHr, visitParentImg, visitParentInput, visitParentLink, visitParentMeta, visitParentParam, visitParentRoot, visitParentSource, visitRaw, visitText, write -
Methods inherited from class htmlflow.visitor.PreprocessingVisitor
clone, findLast, getFirst, sb, visitAwait, visitDynamic -
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, visitAttributeOnautocomplete, visitAttributeOnautocompleteerror, visitAttributeOnauxclick, visitAttributeOnbeforeprint, visitAttributeOnbeforeunload, visitAttributeOnblur, visitAttributeOncancel, visitAttributeOncanplay, visitAttributeOncanplaythrough, visitAttributeOnchange, visitAttributeOnclick, visitAttributeOnclose, visitAttributeOncontextmenu, 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, visitAttributeOnsort, 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, visitAttributeSrcSet, visitAttributeSrclang, 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, 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, visitElementRoot, 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, visitParentArea, visitParentArticle, visitParentAside, visitParentAudio, visitParentB, visitParentBase, visitParentBdi, visitParentBdo, visitParentBlockquote, visitParentBody, visitParentBr, visitParentButton, visitParentCanvas, visitParentCaption, visitParentCite, visitParentCode, visitParentCol, visitParentColgroup, visitParentData, visitParentDatalist, visitParentDd, visitParentDel, visitParentDetails, visitParentDetailsComplete, visitParentDetailsSummary, visitParentDfn, visitParentDialog, visitParentDiv, visitParentDl, visitParentDt, visitParentEm, visitParentEmbed, visitParentFieldset, visitParentFigcaption, visitParentFigure, visitParentFooter, visitParentForm, visitParentH1, visitParentH2, visitParentH3, visitParentH4, visitParentH5, visitParentH6, visitParentHead, visitParentHeader, visitParentHr, visitParentHtml, visitParentI, visitParentIframe, visitParentImg, visitParentInput, visitParentIns, visitParentKbd, visitParentLabel, visitParentLegend, visitParentLi, visitParentLink, visitParentMain, visitParentMap, visitParentMark, visitParentMath, visitParentMeta, visitParentMeter, visitParentNav, visitParentNoscript, visitParentObject, visitParentOl, visitParentOptgroup, visitParentOption, visitParentOutput, visitParentP, visitParentParam, visitParentPicture, visitParentPre, visitParentProgress, visitParentQ, visitParentRb, visitParentRoot, visitParentRp, visitParentRt, visitParentRtc, visitParentRuby, visitParentS, visitParentSamp, visitParentScript, visitParentSection, visitParentSelect, visitParentSmall, visitParentSource, 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 org.xmlet.htmlapifaster.ElementVisitorBase
visitAttribute, visitAttributeBoolean, visitAwait, visitComment, visitDynamic, visitElement, visitMfe, visitParent, visitRaw, visitText -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
Method Detail
-
resolve
void resolve(Object model)
Processes the template and injects MFE script tags.
This method first calls the parent's resolve method to create the continuation chain, then traverses the chain to find the head closing tag and injects the necessary script tags for all registered MFE components.
- Parameters:
model- the model object (not used in this implementation)
-
-
-
-