109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)package org.chromium.devtools.jsdoc.checks; 209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 3197021e6b966cfb06891637935ef33fff06433d1Ben Murdochimport com.google.javascript.rhino.Node; 409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)import org.chromium.devtools.jsdoc.ValidatorContext; 609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)abstract class ContextTrackingChecker { 809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) private ContextTrackingState state; 909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 10197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch abstract void enterNode(Node node); 1109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 12197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch abstract void leaveNode(Node node); 1309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 1409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) void setState(ContextTrackingState state) { 1509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) this.state = state; 1609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) } 1709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 1809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) protected ContextTrackingState getState() { 1909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) return state; 2009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) } 2109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 2209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) protected ValidatorContext getContext() { 2309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) return state.getContext(); 2409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) } 2543e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles) 26197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch protected void reportErrorAtNodeStart(Node node, String errorText) { 27197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch getContext().reportErrorInNode(node, 0, errorText); 2843e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles) } 2943e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles) 30197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch protected void reportErrorAtOffset(int offset, String errorText) { 31197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch getContext().reportErrorAtOffset(offset, errorText); 3243e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles) } 33197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 3409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)} 35