Search in sources :

Example 1 with FuncWithFallback

use of org.cactoos.func.FuncWithFallback in project wring by yegor256.

the class Cycle method exec.

@Override
public void exec(final Pipe pipe) throws Exception {
    final XePrint print = new XePrint(pipe.asXembly());
    final Events events = this.base.user(print.text("{/pipe/urn/text()}")).events();
    final String json = print.text("{/pipe/json/text()}");
    new UncheckedFunc<>(new FuncWithFallback<String, JsonObject>(str -> Json.createReader(new ReaderOf(str)).readObject(), new FuncOf<>(error -> events.post(Cycle.class.getCanonicalName(), String.format("Failed to parse JSON:\n%s\n\n%s", json, new TextOf(new BytesOf(error)).asString()))), obj -> {
        if (obj != null) {
            new Exec(new JsonAgent(this.base, obj), new IgnoreEvents(new BoostEvents(events, obj), obj), pipe).run();
        }
        return obj;
    })).apply(json);
}
Also used : JsonObject(javax.json.JsonObject) Events(io.wring.model.Events) FuncOf(org.cactoos.func.FuncOf) UncheckedFunc(org.cactoos.func.UncheckedFunc) Proc(org.cactoos.Proc) Base(io.wring.model.Base) BytesOf(org.cactoos.io.BytesOf) XePrint(io.wring.model.XePrint) Json(javax.json.Json) Pipe(io.wring.model.Pipe) ReaderOf(org.cactoos.io.ReaderOf) TextOf(org.cactoos.text.TextOf) FuncWithFallback(org.cactoos.func.FuncWithFallback) BytesOf(org.cactoos.io.BytesOf) FuncWithFallback(org.cactoos.func.FuncWithFallback) Events(io.wring.model.Events) ReaderOf(org.cactoos.io.ReaderOf) XePrint(io.wring.model.XePrint) TextOf(org.cactoos.text.TextOf)

Aggregations

Base (io.wring.model.Base)1 Events (io.wring.model.Events)1 Pipe (io.wring.model.Pipe)1 XePrint (io.wring.model.XePrint)1 Json (javax.json.Json)1 JsonObject (javax.json.JsonObject)1 Proc (org.cactoos.Proc)1 FuncOf (org.cactoos.func.FuncOf)1 FuncWithFallback (org.cactoos.func.FuncWithFallback)1 UncheckedFunc (org.cactoos.func.UncheckedFunc)1 BytesOf (org.cactoos.io.BytesOf)1 ReaderOf (org.cactoos.io.ReaderOf)1 TextOf (org.cactoos.text.TextOf)1