blob: 040709d89a1c5da71951e82505e77cd4ce0abf91 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.flink.test.windowing.sessionwindows;
import org.apache.flink.util.Preconditions;
/** Test payload that contains useful information for the correctness checks in our test. */
public final class TestEventPayload {
// id of the session w.r.t the key
private int sessionId;
// id of the event w.r.t. tje session id
private int eventId;
// the watermark under which the event was emitted
private long watermark;
// the timing characteristic of the event w.r.t. the watermark
private SessionEventGeneratorImpl.Timing timing;
public TestEventPayload(
long watermark,
int sessionId,
int eventSequenceNumber,
SessionEventGeneratorImpl.Timing timing) {
setWatermark(watermark);
setSessionId(sessionId);
setEventId(eventSequenceNumber);
setTiming(timing);
}
/** @return global watermark at the time this event was generated */
public long getWatermark() {
return watermark;
}
public void setWatermark(long watermark) {
this.watermark = watermark;
}
/**
* @return id of the session to identify a sessions in the sequence of all sessions for the same
* key
*/
public int getSessionId() {
return sessionId;
}
public void setSessionId(int sessionId) {
this.sessionId = sessionId;
}
/** @return a sequence number that acts as an id for the even inside the session */
public int getEventId() {
return eventId;
}
public void setEventId(int eventId) {
this.eventId = eventId;
}
/**
* @return indicates whether the event is on time, late within the timing, or late after the
* timing
*/
public SessionEventGeneratorImpl.Timing getTiming() {
return timing;
}
public void setTiming(SessionEventGeneratorImpl.Timing timing) {
Preconditions.checkNotNull(timing);
this.timing = timing;
}
@Override
public String toString() {
return "TestEventPayload{"
+ "sessionId="
+ sessionId
+ ", eventId="
+ eventId
+ ", watermark="
+ watermark
+ ", timing="
+ timing
+ '}';
}
public static TestEventPayload of(
long watermark, int sessionId, int eventId, SessionEventGeneratorImpl.Timing timing) {
return new TestEventPayload(watermark, sessionId, eventId, timing);
}
}