code: @SuppressWarnings("rawtypes")
      public static final SerIterator map(
              final Map<?, ?> map, final Class<?> declaredType,
              final Class<?> keyType, final Class<?> valueType, final List<Class<?>> valueTypeTypes) {
          return new SerIterator() {
              private final Iterator it = map.entrySet().iterator();
              private Entry current;
  
              @Override
              public String metaTypeName() {
                  return "Map";
              }
              @Override
              public boolean metaTypeRequired() {
                  return Map.class.isAssignableFrom(declaredType) == false;
              }
              @Override
              public SerCategory category() {
                  return SerCategory.MAP;
              }
              @Override
              public int size() {
                  return map.size();
              }
              @Override
              public boolean hasNext() {
                  return it.hasNext();
              }
              @Override
              public void next() {
                  current = (Entry) it.next();
              }
              @Override
              public Class<?> keyType() {
                  return keyType;
              }
              @Override
              public Object key() {
                  return current.getKey();
              }
              @Override
              public Class<?> valueType() {
                  return valueType;
              }
              @Override
              public List<Class<?>> valueTypeTypes() {
                  return valueTypeTypes;
              }
              @Override
              public Object value() {
                  return current.getValue();
              }
          };
      }
docs: Gets an iterator wrapper for {@code Map}.
  
  @param map  the collection, not null
  @param declaredType  the declared type, not null
  @param keyType  the value type, not null
  @param valueType  the value type, not null
  @param valueTypeTypes  the generic parameters of the value type
  @return the iterator, not null