code: @SuppressWarnings("unchecked")
  	public <X> StreamRecord<X> replace(X value, long timestamp) {
  		this.timestamp = timestamp;
  		this.value = (T) value;
  		this.hasTimestamp = true;
  
  		return (StreamRecord<X>) this;
  	}
docs: Replace the currently stored value by the given new value and the currently stored
  timestamp with the new timestamp. This returns a StreamElement with the generic type
  parameter that matches the new value.
  
  @param value The new value to wrap in this StreamRecord
  @param timestamp The new timestamp in milliseconds
  @return Returns the StreamElement with replaced value