Class NoOpEnumerator
- java.lang.Object
-
- org.apache.flink.connector.testframe.source.enumerator.NoOpEnumerator
-
- All Implemented Interfaces:
AutoCloseable
,CheckpointListener
,SplitEnumerator<FromElementsSplit,NoOpEnumState>
public class NoOpEnumerator extends Object implements SplitEnumerator<FromElementsSplit,NoOpEnumState>
Mock enumerator.
-
-
Constructor Summary
Constructors Constructor Description NoOpEnumerator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addReader(int subtaskId)
Add a new source reader with the given subtask ID.void
addSplitsBack(List<FromElementsSplit> splits, int subtaskId)
Add splits back to the split enumerator.void
close()
Called to close the enumerator, in case it holds on to any resources, like threads or network connections.void
handleSplitRequest(int subtaskId, String requesterHostname)
Handles the request for a split.NoOpEnumState
snapshotState(long checkpointId)
Creates a snapshot of the state of this split enumerator, to be stored in a checkpoint.void
start()
Start the split enumerator.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.flink.api.common.state.CheckpointListener
notifyCheckpointAborted
-
Methods inherited from interface org.apache.flink.api.connector.source.SplitEnumerator
handleSourceEvent, notifyCheckpointComplete
-
-
-
-
Method Detail
-
start
public void start()
Description copied from interface:SplitEnumerator
Start the split enumerator.The default behavior does nothing.
- Specified by:
start
in interfaceSplitEnumerator<FromElementsSplit,NoOpEnumState>
-
handleSplitRequest
public void handleSplitRequest(int subtaskId, @Nullable String requesterHostname)
Description copied from interface:SplitEnumerator
Handles the request for a split. This method is called when the reader with the given subtask id calls theSourceReaderContext.sendSplitRequest()
method.- Specified by:
handleSplitRequest
in interfaceSplitEnumerator<FromElementsSplit,NoOpEnumState>
- Parameters:
subtaskId
- the subtask id of the source reader who sent the source event.requesterHostname
- Optional, the hostname where the requesting task is running. This can be used to make split assignments locality-aware.
-
addSplitsBack
public void addSplitsBack(List<FromElementsSplit> splits, int subtaskId)
Description copied from interface:SplitEnumerator
Add splits back to the split enumerator. This will only happen when aSourceReader
fails and there are splits assigned to it after the last successful checkpoint.- Specified by:
addSplitsBack
in interfaceSplitEnumerator<FromElementsSplit,NoOpEnumState>
- Parameters:
splits
- The splits to add back to the enumerator for reassignment.subtaskId
- The id of the subtask to which the returned splits belong.
-
addReader
public void addReader(int subtaskId)
Description copied from interface:SplitEnumerator
Add a new source reader with the given subtask ID.- Specified by:
addReader
in interfaceSplitEnumerator<FromElementsSplit,NoOpEnumState>
- Parameters:
subtaskId
- the subtask ID of the new source reader.
-
snapshotState
public NoOpEnumState snapshotState(long checkpointId) throws Exception
Description copied from interface:SplitEnumerator
Creates a snapshot of the state of this split enumerator, to be stored in a checkpoint.The snapshot should contain the latest state of the enumerator: It should assume that all operations that happened before the snapshot have successfully completed. For example all splits assigned to readers via
SplitEnumeratorContext.assignSplit(SourceSplit, int)
andSplitEnumeratorContext.assignSplits(SplitsAssignment)
) don't need to be included in the snapshot anymore.This method takes the ID of the checkpoint for which the state is snapshotted. Most implementations should be able to ignore this parameter, because for the contents of the snapshot, it doesn't matter for which checkpoint it gets created. This parameter can be interesting for source connectors with external systems where those systems are themselves aware of checkpoints; for example in cases where the enumerator notifies that system about a specific checkpoint being triggered.
- Specified by:
snapshotState
in interfaceSplitEnumerator<FromElementsSplit,NoOpEnumState>
- Parameters:
checkpointId
- The ID of the checkpoint for which the snapshot is created.- Returns:
- an object containing the state of the split enumerator.
- Throws:
Exception
- when the snapshot cannot be taken.
-
close
public void close() throws IOException
Description copied from interface:SplitEnumerator
Called to close the enumerator, in case it holds on to any resources, like threads or network connections.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceSplitEnumerator<FromElementsSplit,NoOpEnumState>
- Throws:
IOException
-
-