/// <exception cref="System.IO.IOException"/>
 private void _writePath(com.fasterxml.jackson.core.JsonGenerator gen)
 {
     if ((_filter == null) || (_filter == com.fasterxml.jackson.core.filter.TokenFilter
         .INCLUDE_ALL))
     {
         return;
     }
     if (_parent != null)
     {
         _parent._writePath(gen);
     }
     if (_startHandled)
     {
         // even if Object started, need to start leaf-level name
         if (_needToHandleName)
         {
             _needToHandleName = false;
             // at parent must explicitly clear
             gen.writeFieldName(_currentName);
         }
     }
     else
     {
         _startHandled = true;
         if (_type == TYPE_OBJECT)
         {
             gen.writeStartObject();
             if (_needToHandleName)
             {
                 _needToHandleName = false;
                 // at parent must explicitly clear
                 gen.writeFieldName(_currentName);
             }
         }
         else
         {
             if (_type == TYPE_ARRAY)
             {
                 gen.writeStartArray();
             }
         }
     }
 }
 /// <summary>
 /// Method called to ensure that parent path from root is written up to
 /// and including this node.
 /// </summary>
 /// <exception cref="System.IO.IOException"/>
 public virtual void writePath(com.fasterxml.jackson.core.JsonGenerator gen)
 {
     if ((_filter == null) || (_filter == com.fasterxml.jackson.core.filter.TokenFilter
         .INCLUDE_ALL))
     {
         return;
     }
     if (_parent != null)
     {
         _parent._writePath(gen);
     }
     if (_startHandled)
     {
         // even if Object started, need to start leaf-level name
         if (_needToHandleName)
         {
             gen.writeFieldName(_currentName);
         }
     }
     else
     {
         _startHandled = true;
         if (_type == TYPE_OBJECT)
         {
             gen.writeStartObject();
             gen.writeFieldName(_currentName);
         }
         else
         {
             // we know name must be written
             if (_type == TYPE_ARRAY)
             {
                 gen.writeStartArray();
             }
         }
     }
 }