aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/html/HtmlNode.java
blob: a04b57f99f63616fac43f18be488a1d1f1195c8c (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.internal.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);
    }
}