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

net.thucydides.core.requirements.RequirementsMerger Maven / Gradle / Ivy

package net.thucydides.core.requirements;

import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import net.thucydides.core.requirements.model.Requirement;

import java.util.List;

/**
 * Created by john on 16/04/2015.
 */
public class RequirementsMerger {
    public List merge(Iterable baseRequirements, Iterable newRequirements) {
        List mergedRequirements = Lists.newArrayList(baseRequirements);

        for(Requirement newRequirement : newRequirements) {
            mergeNewRequirement(newRequirement, mergedRequirements);
        }

        return ImmutableList.copyOf(mergedRequirements);
    }

    private void mergeNewRequirement(Requirement newRequirement, List existingRequirements) {
        if (!existingRequirements.contains(newRequirement)) {
            existingRequirements.add(newRequirement);
        } else {
            Requirement existing = existingRequirements.remove(existingRequirements.indexOf(newRequirement));
            existingRequirements.add(existing.merge(newRequirement));
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy