code: public <R> SingleOutputStreamOperator<R> flatMap(FlatMapFunction<T, R> flatMapper) {
  
  		TypeInformation<R> outType = TypeExtractor.getFlatMapReturnTypes(clean(flatMapper),
  				getType(), Utils.getCallLocationName(), true);
  
  		return transform("Flat Map", outType, new StreamFlatMap<>(clean(flatMapper)));
  
  	}
docs: Applies a FlatMap transformation on a {@link DataStream}. The
  transformation calls a {@link FlatMapFunction} for each element of the
  DataStream. Each FlatMapFunction call can return any number of elements
  including none. The user can also extend {@link RichFlatMapFunction} to
  gain access to other features provided by the
  {@link org.apache.flink.api.common.functions.RichFunction} interface.
  
  @param flatMapper
  The FlatMapFunction that is called for each element of the
  DataStream
  
  @param <R>
  output type
  @return The transformed {@link DataStream}.