001package org.apache.wiki.markdown.extensions.jspwikilinks.postprocessor;
002
003import com.vladsch.flexmark.util.ast.Node;
004import com.vladsch.flexmark.util.ast.NodeTracker;
005import com.vladsch.flexmark.util.sequence.CharSubSequence;
006import org.apache.wiki.WikiContext;
007import org.apache.wiki.markdown.nodes.JSPWikiLink;
008
009
010/**
011 * {@link NodePostProcessorState} which further post processes local footnote links.
012 */
013public class LocalFootnoteLinkNodePostProcessorState implements NodePostProcessorState< JSPWikiLink > {
014
015    final WikiContext wikiContext;
016
017    public LocalFootnoteLinkNodePostProcessorState( final WikiContext wikiContext ) {
018        this.wikiContext = wikiContext;
019    }
020
021    /**
022     * {@inheritDoc}
023     *
024     * @see NodePostProcessorState#process(NodeTracker, Node) 
025     */
026    @Override
027    public void process( final NodeTracker state, final JSPWikiLink link ) {
028        link.setUrl( CharSubSequence.of( wikiContext.getURL( WikiContext.VIEW, link.getUrl().toString() ) ) );
029    }
030
031}