class SourceStreamTask extends StreamTask<OUT, OP> {

	@Override
	public Future<Boolean> triggerCheckpointAsync(CheckpointMetaData checkpointMetaData, CheckpointOptions checkpointOptions, boolean advanceToEndOfEventTime) {
		if (!externallyInducedCheckpoints) {
			return super.triggerCheckpointAsync(checkpointMetaData, checkpointOptions, advanceToEndOfEventTime);
		}
		else {
			// we do not trigger checkpoints here, we simply state whether we can trigger them
			synchronized (lock) {
				return CompletableFuture.completedFuture(isRunning());
			}
		}
	}

	public  SourceStreamTask(Environment env);
	private  SourceStreamTask(Environment env, Object lock);

}