code: @Deprecated
  	public SingleOutputStreamOperator<T> assignTimestamps(TimestampExtractor<T> extractor) {
  		// match parallelism to input, otherwise dop=1 sources could lead to some strange
  		// behaviour: the watermark will creep along very slowly because the elements
  		// from the source go to each extraction operator round robin.
  		int inputParallelism = getTransformation().getParallelism();
  		ExtractTimestampsOperator<T> operator = new ExtractTimestampsOperator<>(clean(extractor));
  		return transform("ExtractTimestamps", getTransformation().getOutputType(), operator)
  				.setParallelism(inputParallelism);
  	}
docs: Extracts a timestamp from an element and assigns it as the internal timestamp of that element.
  The internal timestamps are, for example, used to to event-time window operations.
  
  <p>If you know that the timestamps are strictly increasing you can use an
  {@link AscendingTimestampExtractor}. Otherwise,
  you should provide a {@link TimestampExtractor} that also implements
  {@link TimestampExtractor#getCurrentWatermark()} to keep track of watermarks.
  
  @param extractor The TimestampExtractor that is called for each element of the DataStream.
  
  @deprecated Please use {@link #assignTimestampsAndWatermarks(AssignerWithPeriodicWatermarks)}
  of {@link #assignTimestampsAndWatermarks(AssignerWithPunctuatedWatermarks)}
  instead.
  @see #assignTimestampsAndWatermarks(AssignerWithPeriodicWatermarks)
  @see #assignTimestampsAndWatermarks(AssignerWithPunctuatedWatermarks)