code: public Enumeration getFieldNames()
      {
          return new Enumeration()
              {
                  int i=0;
                  Field field=null;
  
                  public boolean hasMoreElements()
                  {
                      if (field!=null)
                          return true;
                      while (i<_fields.size())
                      {
                          Field f=(Field)_fields.get(i++);
                          if (f!=null && f._version==_version && f._prev==null)
                          {
                              field=f;
                              return true;
                          }
                      }
                      return false;
                  }
  
                  public Object nextElement()
                      throws NoSuchElementException
                  {
                      if (field!=null || hasMoreElements())
                      {
                          String n=field._info._name;
                          field=null;
                          return n;
                      }
                      throw new NoSuchElementException();
                  }
              };
      }
docs: Get enumeration of header _names.
  Returns an enumeration of strings representing the header _names
  for this request.