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

functionalj.promise.PromiseMapAddOn Maven / Gradle / Ivy

There is a newer version: 1.0.17
Show newest version
// ============================================================================
// Copyright (c) 2017-2021 Nawapunth Manusitthipol (NawaMan - http://nawaman.net).
// ----------------------------------------------------------------------------
// MIT License
// 
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// 
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
// 
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
// ============================================================================
package functionalj.promise;

import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.function.Predicate;

import functionalj.function.Func3;
import functionalj.function.Func4;
import functionalj.function.Func5;
import functionalj.function.Func6;
import functionalj.map.FuncMap;
import functionalj.result.Result;
import functionalj.tuple.Tuple2;
import functionalj.tuple.Tuple3;
import functionalj.tuple.Tuple4;
import functionalj.tuple.Tuple5;
import functionalj.tuple.Tuple6;


@SuppressWarnings({ "unchecked", "rawtypes" })
public interface PromiseMapAddOn {
    
    
    public  Promise mapResult(Function, Result> mapper);
    
    
    public default  Promise mapTo(Function mapper) {
        return (Promise)mapResult(result -> result.mapTo((Function)mapper));
    }
    public default Promise mapOnly(
            Predicate   checker,
            Function mapper) {
        return (Promise)mapResult(result -> result.mapOnly((Predicate)checker, (Function)mapper));
    }
    public default  Promise mapIf(
            Predicate   checker, 
            Function mapper, 
            Function elseMapper) {
        return (Promise)mapResult(result -> result.mapIf((Predicate)checker, (Function)mapper, (Function)elseMapper));
    }
    
    // TODO - Find a better name  --- mapFirstOf, mapOneOf, tryMap
    public default  Promise mapFirst(
            Function mapper1,
            Function mapper2) {
        return (Promise)mapResult(result -> result.mapFirst((Function)mapper1, (Function)mapper2));
    }
    
    public default  Promise mapFirst(
            Function mapper1,
            Function mapper2,
            Function mapper3) {
        return (Promise)mapResult(result -> result.mapFirst((Function)mapper1, (Function)mapper2, (Function)mapper3));
    }
    
    public default  Promise mapFirst(
            Function mapper1,
            Function mapper2,
            Function mapper3,
            Function mapper4) {
        return (Promise)mapResult(result -> result.mapFirst((Function)mapper1, (Function)mapper2, (Function)mapper3, (Function)mapper4));
    }
    
    public default  Promise mapFirst(
            Function mapper1,
            Function mapper2,
            Function mapper3,
            Function mapper4,
            Function mapper5) {
        return (Promise)mapResult(result -> result.mapFirst((Function)mapper1, (Function)mapper2, (Function)mapper3, (Function)mapper4, (Function)mapper5));
    }
    
    public default  Promise mapFirst(
            Function mapper1,
            Function mapper2,
            Function mapper3,
            Function mapper4,
            Function mapper5,
            Function mapper6) {
        return (Promise)mapResult(result -> result.mapFirst((Function)mapper1, (Function)mapper2, (Function)mapper3, (Function)mapper4, (Function)mapper5, (Function)mapper6));
    }
    
    //== Map to tuple. ==
    // ++ Generated with: GeneratorFunctorMapToTupleToObject ++
    
    public default  
        Promise> mapTuple(
                Function mapper1,
                Function mapper2) {
        return (Promise)mapResult(result -> result.mapTuple((Function)mapper1, (Function)mapper2));
    }
    
    public default  
        Promise> mapTuple(
                Function mapper1,
                Function mapper2,
                Function mapper3) {
        return (Promise)mapResult(result -> result.mapTuple((Function)mapper1, (Function)mapper2, (Function)mapper3));
    }
    
    public default  
        Promise> mapTuple(
                Function mapper1,
                Function mapper2,
                Function mapper3,
                Function mapper4) {
        return (Promise)mapResult(result -> result.mapTuple((Function)mapper1, (Function)mapper2, (Function)mapper3, (Function)mapper4));
    }
    
    public default  
        Promise> mapTuple(
                Function mapper1,
                Function mapper2,
                Function mapper3,
                Function mapper4,
                Function mapper5) {
        return (Promise)mapResult(result -> result.mapTuple((Function)mapper1, (Function)mapper2, (Function)mapper3, (Function)mapper4, (Function)mapper5));
    }
    public default  
        Promise> mapTuple(
                Function mapper1,
                Function mapper2,
                Function mapper3,
                Function mapper4,
                Function mapper5,
                Function mapper6) {
        return (Promise)mapResult(result -> result.mapTuple((Function)mapper1, (Function)mapper2, (Function)mapper3, (Function)mapper4, (Function)mapper5, (Function)mapper6));
    }
    
    //-- Map and combine --
    
    public default  
        Promise mapThen(
                Function mapper1,
                Function mapper2,
                BiFunction function) {
        return (Promise)mapResult(result -> result.mapThen((Function)mapper1, (Function)mapper2, function));
    }
    public default  
        Promise mapThen(
                Function mapper1,
                Function mapper2,
                Function mapper3,
                Func3 function) {
        return (Promise)mapResult(result -> result.mapThen((Function)mapper1, (Function)mapper2, (Function)mapper3, function));
    }
    public default  
        Promise mapThen(
                Function mapper1,
                Function mapper2,
                Function mapper3,
                Function mapper4,
                Func4 function) {
        return (Promise)mapResult(result -> result.mapThen((Function)mapper1, (Function)mapper2, (Function)mapper3, (Function)mapper4, function));
    }
    public default  
        Promise mapThen(
                Function mapper1,
                Function mapper2,
                Function mapper3,
                Function mapper4,
                Function mapper5,
                Func5 function) {
        return (Promise)mapResult(result -> result.mapThen((Function)mapper1, (Function)mapper2, (Function)mapper3, (Function)mapper4, (Function)mapper5, function));
    }
    public default  
        Promise mapThen(
                Function mapper1,
                Function mapper2,
                Function mapper3,
                Function mapper4,
                Function mapper5,
                Function mapper6,
                Func6 function) {
        return (Promise)mapResult(result -> result.mapThen((Function)mapper1, (Function)mapper2, (Function)mapper3, (Function)mapper4, (Function)mapper5, (Function)mapper6, function));
    }
    
    // -- Generated with: GeneratorFunctorMapToTupleToObject --
    
    public default  Promise> mapToMap(
            KEY key, Function mapper) {
        return (Promise)mapResult(result -> result.mapToMap(key, (Function)mapper));
    }
    
    public default  Promise> mapToMap(
            KEY key1, Function mapper1,
            KEY key2, Function mapper2) {
        return (Promise)mapResult(result -> 
                    result.mapToMap(
                            key1, (Function)mapper1,
                            key2, (Function)mapper2));
    }
    
    public default  Promise> mapToMap(
            KEY key1, Function mapper1,
            KEY key2, Function mapper2,
            KEY key3, Function mapper3) {
        return (Promise)mapResult(result -> 
                    result.mapToMap(
                            key1, (Function)mapper1,
                            key2, (Function)mapper2,
                            key3, (Function)mapper3));
    }
    
    public default  Promise> mapToMap(
            KEY key1, Function mapper1,
            KEY key2, Function mapper2,
            KEY key3, Function mapper3,
            KEY key4, Function mapper4) {
        return (Promise)mapResult(result -> 
                    result.mapToMap(
                            key1, (Function)mapper1,
                            key2, (Function)mapper2,
                            key3, (Function)mapper3,
                            key4, (Function)mapper4));
    }
    
    public default  Promise> mapToMap(
            KEY key1, Function mapper1,
            KEY key2, Function mapper2,
            KEY key3, Function mapper3,
            KEY key4, Function mapper4,
            KEY key5, Function mapper5) {
        return (Promise)mapResult(result -> 
                    result.mapToMap(
                            key1, (Function)mapper1,
                            key2, (Function)mapper2,
                            key3, (Function)mapper3,
                            key4, (Function)mapper4,
                            key5, (Function)mapper5));
    }
    
    public default  Promise> mapToMap(
            KEY key1, Function mapper1,
            KEY key2, Function mapper2,
            KEY key3, Function mapper3,
            KEY key4, Function mapper4,
            KEY key5, Function mapper5,
            KEY key6, Function mapper6) {
        return (Promise)mapResult(result -> 
                    result.mapToMap(
                            key1, (Function)mapper1,
                            key2, (Function)mapper2,
                            key3, (Function)mapper3,
                            key4, (Function)mapper4,
                            key5, (Function)mapper5,
                            key6, (Function)mapper6));
    }
    
    public default  Promise> mapToMap(
            KEY key1, Function mapper1,
            KEY key2, Function mapper2,
            KEY key3, Function mapper3,
            KEY key4, Function mapper4,
            KEY key5, Function mapper5,
            KEY key6, Function mapper6,
            KEY key7, Function mapper7) {
        return (Promise)mapResult(result -> 
                    result.mapToMap(
                            key1, (Function)mapper1,
                            key2, (Function)mapper2,
                            key3, (Function)mapper3,
                            key4, (Function)mapper4,
                            key5, (Function)mapper5,
                            key6, (Function)mapper6,
                            key7, (Function)mapper7));
    }
    
    public default  Promise> mapToMap(
            KEY key1, Function mapper1,
            KEY key2, Function mapper2,
            KEY key3, Function mapper3,
            KEY key4, Function mapper4,
            KEY key5, Function mapper5,
            KEY key6, Function mapper6,
            KEY key7, Function mapper7,
            KEY key8, Function mapper8) {
        return (Promise)mapResult(result -> 
                    result.mapToMap(
                            key1, (Function)mapper1,
                            key2, (Function)mapper2,
                            key3, (Function)mapper3,
                            key4, (Function)mapper4,
                            key5, (Function)mapper5,
                            key6, (Function)mapper6,
                            key7, (Function)mapper7,
                            key8, (Function)mapper8));
    }
    
    public default  Promise> mapToMap(
            KEY key1, Function mapper1,
            KEY key2, Function mapper2,
            KEY key3, Function mapper3,
            KEY key4, Function mapper4,
            KEY key5, Function mapper5,
            KEY key6, Function mapper6,
            KEY key7, Function mapper7,
            KEY key8, Function mapper8,
            KEY key9, Function mapper9) {
        return (Promise)mapResult(result -> 
                    result.mapToMap(
                            key1, (Function)mapper1,
                            key2, (Function)mapper2,
                            key3, (Function)mapper3,
                            key4, (Function)mapper4,
                            key5, (Function)mapper5,
                            key6, (Function)mapper6,
                            key7, (Function)mapper7,
                            key8, (Function)mapper8,
                            key9, (Function)mapper9));
    }
    
    public default  Promise> mapToMap(
            KEY key1, Function mapper1,
            KEY key2, Function mapper2,
            KEY key3, Function mapper3,
            KEY key4, Function mapper4,
            KEY key5, Function mapper5,
            KEY key6, Function mapper6,
            KEY key7, Function mapper7,
            KEY key8, Function mapper8,
            KEY key9, Function mapper9,
            KEY key10, Function mapper10) {
        return (Promise)mapResult(result -> 
                    result.mapToMap(
                            key1, (Function)mapper1,
                            key2, (Function)mapper2,
                            key3, (Function)mapper3,
                            key4, (Function)mapper4,
                            key5, (Function)mapper5,
                            key6, (Function)mapper6,
                            key7, (Function)mapper7,
                            key8, (Function)mapper8,
                            key9, (Function)mapper9,
                            key10, (Function)mapper10));
    }
    
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy