![JAR search and dependency download from the Maven repository](/logo.png)
net.pincette.mongo.streams.Trace Maven / Gradle / Ivy
package net.pincette.mongo.streams;
import static javax.json.JsonValue.NULL;
import static net.pincette.json.JsonUtil.string;
import static net.pincette.mongo.Expression.function;
import static net.pincette.mongo.streams.Util.LOGGER;
import static net.pincette.rs.Mapper.map;
import java.util.concurrent.Flow.Processor;
import java.util.function.Function;
import javax.json.JsonObject;
import javax.json.JsonValue;
import net.pincette.function.SideEffect;
import net.pincette.rs.streams.Message;
/**
* The $trace
operator.
*
* @author Werner Donn\u00e9
*/
class Trace {
private Trace() {}
static Processor, Message> stage(
final JsonValue expression, final Context context) {
final Function function =
!expression.equals(NULL) ? function(expression, context.features) : null;
return map(
m ->
SideEffect.>run(
() ->
LOGGER.info(
() ->
string(
function != null ? function.apply(m.value) : m.value, false)))
.andThenGet(() -> m));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy