Package org.apache.wiki.parser

## Class JSPWikiMarkupParser

- java.lang.Object
- - org.apache.wiki.parser.MarkupParser
  - - org.apache.wiki.parser.JSPWikiMarkupParser

    public class JSPWikiMarkupParser
    extends MarkupParser

Parses JSPWiki-style markup into a WikiDocument DOM tree. This class is the heart and soul of JSPWiki : make sure you test properly anything that is added, or else it breaks down horribly.

Since:
  2.4

### Field Summary

Fields
`protected static int` `ATTACHMENT`
`protected static int` `CHARACTER` The token is a plain character.
`protected static int` `EDIT`
`protected static int` `ELEMENT` The token is a wikimarkup element.
`protected static int` `EMPTY`
`protected static int` `EXTERNAL`
`protected static int` `IGNORE` The token is to be ignored.
`protected static int` `IMAGE`
`protected static int` `IMAGELINK`
`protected static int` `IMAGEWIKILINK`
`protected static int` `INTERWIKI`
`protected static int` `LOCAL`
`protected static int` `LOCALREF`
`protected static int` `READ`

### Fields inherited from class org.apache.wiki.parser.MarkupParser

`CLASS_ATTACHMENT, CLASS_EDITPAGE, CLASS_EXTERNAL, CLASS_FOOTNOTE, CLASS_FOOTNOTE_REF, CLASS_INTERWIKI, CLASS_TYPES, CLASS_WIKIPAGE, HASHLINK, m_attachmentLinkMutatorChain, m_context, m_engine, m_externalLinkMutatorChain, m_headingListenerChain, m_in, m_inlineImagePatterns, m_inlineImages, m_linkMutators, m_linkParsingOperations, m_localLinkMutatorChain, m_parseAccessRules, OUTLINK, OUTLINK_IMAGE, PROP_ALLOWHTML, PROP_CAMELCASELINKS, PROP_PLAINURIS, PROP_RUNPLUGINS, PROP_USEATTACHMENTIMAGE, PROP_USEOUTLINKIMAGE, PROP_USERELNOFOLLOW, PUSHBACK_BUFFER_SIZE`

### Constructor Summary

Constructors
`JSPWikiMarkupParser​(Context context, java.io.Reader in)` Creates a markup parser.

### Method Summary

All Methods Instance Methods Concrete Methods
`protected java.lang.String` `callMutatorChain​(java.util.Collection<StringTransmutator> list, java.lang.String text)` Calls a transmutator chain.
`org.jdom2.Element` `makeHeading​(int level, java.lang.String title, Heading hd)` Returns XHTML for the heading.
`protected java.lang.String` `makeHeadingAnchor​(java.lang.String baseName, java.lang.String title, Heading hd)` Modifies the "hd" parameter to contain proper values.
`WikiDocument` `parse()` Parses the entire document from the Reader given in the constructor or set by `MarkupParser.setInputReader(Reader)`.
`protected int` `parseToken​(int ch)` Return CHARACTER, if you think this was a plain character; ELEMENT, if you think this was a wiki markup element, and IGNORE, if you think we should ignore this altogether.

### Methods inherited from class org.apache.wiki.parser.MarkupParser

`addAttachmentLinkHook, addExternalLinkHook, addHeadingListener, addLinkTransmutator, addLocalLinkHook, cleanLink, disableAccessRules, enableImageInlining, getInlineImagePatterns, getPosition, initInlineImagePatterns, isImageInlining, isParseAccessRules, makeError, nextToken, pushBack, setInputReader, wikifyLink`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### READ

    protected static final int READ

See Also:
  Constant Field Values

#### EDIT

    protected static final int EDIT

See Also:
  Constant Field Values

#### EMPTY

    protected static final int EMPTY

See Also:
  Constant Field Values

#### LOCAL

    protected static final int LOCAL

See Also:
  Constant Field Values

#### LOCALREF

    protected static final int LOCALREF

See Also:
  Constant Field Values

#### IMAGE

    protected static final int IMAGE

See Also:
  Constant Field Values

#### EXTERNAL

    protected static final int EXTERNAL

See Also:
  Constant Field Values

#### INTERWIKI

    protected static final int INTERWIKI

See Also:
  Constant Field Values

#### IMAGELINK

    protected static final int IMAGELINK

See Also:
  Constant Field Values

#### IMAGEWIKILINK

    protected static final int IMAGEWIKILINK

See Also:
  Constant Field Values

#### ATTACHMENT

    protected static final int ATTACHMENT

See Also:
  Constant Field Values

#### CHARACTER

    protected static final int CHARACTER

The token is a plain character.

See Also:
  Constant Field Values

#### ELEMENT

    protected static final int ELEMENT

The token is a wikimarkup element.

See Also:
  Constant Field Values

#### IGNORE

    protected static final int IGNORE

The token is to be ignored.

See Also:
  Constant Field Values

### Constructor Detail

#### JSPWikiMarkupParser

    public JSPWikiMarkupParser​(Context context,
                               java.io.Reader in)

Creates a markup parser.

Parameters:
  `context` - The WikiContext which controls the parsing
  `in` - Where the data is read from.

### Method Detail

#### callMutatorChain

    protected java.lang.String callMutatorChain​(java.util.Collection<StringTransmutator> list,
                                                java.lang.String text)

Calls a transmutator chain.

Parameters:
  `list` - Chain to call
  `text` - Text that should be passed to the mutate() method of each of the mutators in the chain.
Returns:
  The result of the mutation.

#### makeHeadingAnchor

    protected java.lang.String makeHeadingAnchor​(java.lang.String baseName,
                                                 java.lang.String title,
                                                 Heading hd)

Modifies the "hd" parameter to contain proper values. Because an "id" tag may only contain [a-zA-Z0-9:_-], we'll replace the % after url encoding with '_'.

Counts also duplicate headings (= headings with similar name), and attaches a counter.

#### makeHeading

    public org.jdom2.Element makeHeading​(int level,
                                         java.lang.String title,
                                         Heading hd)

Returns XHTML for the heading.

Parameters:
  `level` - The level of the heading. @see Heading
  `title` - the title for the heading
  `hd` - a List to which heading should be added
Returns:
  An Element containing the heading

#### parseToken

    protected int parseToken​(int ch)
                      throws java.io.IOException

Return CHARACTER, if you think this was a plain character; ELEMENT, if you think this was a wiki markup element, and IGNORE, if you think we should ignore this altogether.

To add your own MarkupParser, you can override this method, but it is recommended that you call super.parseToken() as well to gain advantage of JSPWiki's own markup. You can call it at the start of your own parseToken() or end - it does not matter.

Parameters:
  `ch` - The character under investigation
Returns:
  `ELEMENT`, `CHARACTER` or `IGNORE`.
Throws:
  `java.io.IOException` - If parsing fails.

#### parse

    public WikiDocument parse()
                       throws java.io.IOException

Parses the entire document from the Reader given in the constructor or set by `MarkupParser.setInputReader(Reader)`.

Specified by:
  `parse` in class `MarkupParser`
Returns:
  A WikiDocument, ready to be passed to the renderer.
Throws:
  `java.io.IOException` - If parsing cannot be accomplished.