1package org.chromium.devtools.jsdoc.checks;
2
3import com.google.javascript.rhino.Node;
4
5import org.chromium.devtools.jsdoc.ValidatorContext;
6
7abstract class ContextTrackingChecker {
8    private ContextTrackingState state;
9
10    abstract void enterNode(Node node);
11
12    abstract void leaveNode(Node node);
13
14    void setState(ContextTrackingState state) {
15        this.state = state;
16    }
17
18    protected ContextTrackingState getState() {
19        return state;
20    }
21
22    protected ValidatorContext getContext() {
23        return state.getContext();
24    }
25
26    protected void reportErrorAtNodeStart(Node node, String errorText) {
27        getContext().reportErrorInNode(node, 0, errorText);
28    }
29
30    protected void reportErrorAtOffset(int offset, String errorText) {
31        getContext().reportErrorAtOffset(offset, errorText);
32    }
33
34}
35