@Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        final TubeMQTableSource that = (TubeMQTableSource) o;
        return Objects.equals(physicalDataType, that.physicalDataType)
                && Objects.equals(valueDecodingFormat, that.valueDecodingFormat)
                && Objects.equals(masterAddress, that.masterAddress)
                && Objects.equals(topic, that.topic)
                && Objects.equals(String.valueOf(streamIdSet), String.valueOf(that.streamIdSet))
                && Objects.equals(consumerGroup, that.consumerGroup)
                && Objects.equals(proctimeAttribute, that.proctimeAttribute)
                && Objects.equals(watermarkStrategy, that.watermarkStrategy);
    }
Watermark strategy that is used to generate per-partition watermark.
inlong-sort/sort-flink/sort-flink-v1.13/sort-connectors/tubemq/src/main/java/org/apache/inlong/sort/tubemq/table/TubeMQTableSource.java