code: @SuppressWarnings("unchecked")
  	public static void execute(Map<String, Object> map, BindMapListener listener) {
  		if (listener == null)
  			throw (new KriptonRuntimeException("listener can not be null"));
  		if (map == null)
  			throw (new KriptonRuntimeException("map can not be null"));
  
  		VisitorStatusType status = VisitorStatusType.RUN;
  
  		for (Entry<String, Object> item : map.entrySet()) {
  			if (item.getValue() == null || item.getValue() instanceof String) {
  				visit(item.getKey(), (String) item.getValue(), listener, status);
  			} else if (item.getValue() instanceof List) {
  				visitList(item.getKey(), (List<Object>) item.getValue(), listener, status);
  			} else if (item.getValue() instanceof Map) {
  				visitMap(item.getKey(), (Map<String, Object>) item.getValue(), listener, status);
  			}
  
  			if (status == VisitorStatusType.STOP)
  				return;
  
  		}
  
  	}
docs: Execute.
  
  @param map the map
  @param listener the listener