All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.smallibs.concurrent.promise.impl.MappedPromise Maven / Gradle / Ivy

There is a newer version: 0.11.0
Show newest version
/*
 * HPAS
 * https://github.com/d-plaindoux/hpas
 *
 * Copyright (c) 2016-2017 Didier Plaindoux
 * Licensed under the LGPL2 license.
 */

package org.smallibs.concurrent.promise.impl;

import org.smallibs.concurrent.promise.Promise;
import org.smallibs.data.Try;
import org.smallibs.util.FunctionWithError;

final class MappedPromise extends SolvablePromise {

    MappedPromise(Promise promise, FunctionWithError transform) {
        super();

        promise.onComplete(c ->
                solve(c.flatmap(v -> {
                    try {
                        return Try.success(transform.apply(v));
                    } catch (Throwable throwable) {
                        return Try.failure(throwable);
                    }
                }))
        );
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy