io.vertx.ext.mongo.impl.MappingStream Maven / Gradle / Ivy
/*
* Copyright 2019 The Vert.x Community.
*
* Licensed 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 io.vertx.ext.mongo.impl;
import io.vertx.core.Handler;
import io.vertx.core.streams.ReadStream;
import java.util.Objects;
import java.util.function.Function;
public class MappingStream implements ReadStream {
private final ReadStream input;
private final Function mapper;
public MappingStream(ReadStream input, Function mapper) {
Objects.requireNonNull(input, "input is null");
Objects.requireNonNull(mapper, "mapper is null");
this.input = input;
this.mapper = mapper;
}
@Override
public ReadStream exceptionHandler(Handler handler) {
input.exceptionHandler(handler);
return this;
}
@Override
public ReadStream handler(Handler handler) {
if (handler != null) {
input.handler(event -> handler.handle(mapper.apply(event)));
} else {
input.handler(null);
}
return this;
}
@Override
public ReadStream pause() {
input.pause();
return this;
}
@Override
public ReadStream resume() {
input.resume();
return this;
}
@Override
public ReadStream fetch(long amount) {
input.fetch(amount);
return this;
}
@Override
public ReadStream endHandler(Handler endHandler) {
input.endHandler(endHandler);
return this;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy