/** Method that can be called to get the name associated with the current event. */
 @Override
 public String getCurrentName() throws IOException, JsonParseException {
   // [JACKSON-395]: start markers require information from parent
   if (_currToken == JsonToken.START_OBJECT || _currToken == JsonToken.START_ARRAY) {
     JsonReadContext parent = _parsingContext.getParent();
     return parent.getCurrentName();
   }
   return _parsingContext.getCurrentName();
 }
 /**
  * Method called when an EOF is encountered between tokens. If so, it may be a legitimate EOF, but
  * only iff there is no open non-root context.
  */
 @Override
 protected void _handleEOF() throws JsonParseException {
   if (!_parsingContext.inRoot()) {
     _reportInvalidEOF(
         ": expected close marker for "
             + _parsingContext.getTypeDesc()
             + " (from "
             + _parsingContext.getStartLocation(_ioContext.getSourceReference())
             + ")");
   }
 }
 protected void _reportMismatchedEndMarker(int actCh, char expCh) throws JsonParseException {
   String startDesc = "" + _parsingContext.getStartLocation(_ioContext.getSourceReference());
   _reportError(
       "Unexpected close marker '"
           + ((char) actCh)
           + "': expected '"
           + expCh
           + "' (for "
           + _parsingContext.getTypeDesc()
           + " starting at "
           + startDesc
           + ")");
 }
 protected JsonParserBase(IOContext ctxt, int features) {
   super();
   _features = features;
   _ioContext = ctxt;
   _textBuffer = ctxt.constructTextBuffer();
   _parsingContext = JsonReadContext.createRootContext();
 }