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

com.github.leeonky.jfactory.DependencyProducer Maven / Gradle / Ivy

There is a newer version: 0.7.1
Show newest version
package com.github.leeonky.jfactory;

import com.github.leeonky.util.BeanClass;

import java.util.List;
import java.util.function.Function;
import java.util.function.Supplier;

class DependencyProducer extends Producer {
    private final List> dependencies;
    private final Function rule;

    public DependencyProducer(BeanClass type, List> dependencies, Function rule) {
        super(type);
        this.dependencies = dependencies;
        this.rule = rule;
    }

    @Override
    protected T produce() {
        return rule.apply(dependencies.stream().map(Supplier::get).toArray());
    }

    @Override
    protected Producer changeFrom(ObjectProducer producer) {
        if (producer.isFixed())
            return producer;
        return super.changeFrom(producer);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy