aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/html/HtmlNode.java
blob: 6099519e05436c2eb0662fe29aff04e5cb4f0d90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package org.zwobble.mammoth.html;

public interface HtmlNode {
    // TODO: rename visit to accept
    void visit(Visitor visitor);
    <T> T accept(Mapper<T> visitor);

    interface Visitor {
        void visit(HtmlElement element);
        void visit(HtmlSelfClosingElement element);
        void visit(HtmlTextNode node);
        void visit(HtmlForceWrite forceWrite);
    }

    interface Mapper<T> {
        T visit(HtmlElement element);
        T visit(HtmlSelfClosingElement element);
        T visit(HtmlTextNode node);
        T visit(HtmlForceWrite forceWrite);
    }
}