class_docstr: The WatermarkStrategy defines how to generate Watermarks in the stream sources. The
  WatermarkStrategy is a builder/factory for the WatermarkGenerator that generates the watermarks
  and the TimestampAssigner which assigns the internal timestamp of a record.
  
  The convenience methods, for example forBoundedOutOfOrderness(Duration), create a
  WatermarkStrategy for common built in strategies.
class_docstr_tok: ["The","WatermarkStrategy","defines","how","to","generate","Watermarks","in","the","stream","sources",".","The","WatermarkStrategy","is","a","builder\/factory","for","the","WatermarkGenerator","that","generates","the","watermarks","and","the","TimestampAssigner","which","assigns","the","internal","timestamp","of","a","record",".","The","convenience","methods",",","for","example","forBoundedOutOfOrderness","(","Duration",")",",","create","a","WatermarkStrategy","for","common","built","in","strategies","."]
code: def __init__(self, j_watermark_strategy):
      self._j_watermark_strategy = j_watermark_strategy
      self._timestamp_assigner = None
  
file_path: flink/flink-python/pyflink/common/watermark_strategy.py
imports: import abc
  from typing import Any, Optional
  from pyflink.common.time import Duration
  from pyflink.java_gateway import get_gateway
label_desc: Use image node_id 1 to create a new WatermarkStrategy object from inherited base classes: object with example: obj = WatermarkStrategy(j_watermark_strategy)