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

uk.co.caeldev.builder4test.RandomLookUp Maven / Gradle / Ivy

package uk.co.caeldev.builder4test;

import uk.org.fyodor.generators.Generator;

import java.util.Map;
import java.util.Optional;

import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;

public class RandomLookUp implements LookUp {

    private Map values;
    private Map generators;

    protected RandomLookUp(Map values, Map generators) {
        this.values = values;
        this.generators = generators;
    }

    @Override
    public  void put(Field field, V value) {
        values.put(field, Optional.ofNullable(value));
    }

    @Override
    public  V get(Field field, V defaultValue) {
        Optional optValue = values.get(field);

        if (isNull(optValue)) {
            Generator generator = generators.get(field);

            if (nonNull(generator)) {
                return (V)generator.next();
            }

            return defaultValue;
        }

        if (optValue.isPresent()) {
            return (V)optValue.get();
        }

        return null;
    }

    @Override
    public  V get(Field field) {
        return get(field, field.getDefaultValue());
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy