code: public void writeMapBegin(String type)
          throws IOException
      {
          if (SIZE < _offset + 32)
              flushBuffer();
  
          if (type != null) {
              _buffer[_offset++] = BC_MAP;
  
              writeType(type);
          }
          else
              _buffer[_offset++] = BC_MAP_UNTYPED;
      }
docs: Writes the map header to the stream.  Map writers will call
  <code>writeMapBegin</code> followed by the map contents and then
  call <code>writeMapEnd</code>.
  
  <code><pre>
  map ::= M type (<value> <value>)* Z
  ::= H (<value> <value>)* Z
  </pre></code>