package org.netbeans.gradle.project.tasks.vars; import java.util.Arrays; import java.util.Collection; import org.netbeans.gradle.model.util.CollectionUtils; import org.netbeans.gradle.project.api.task.TaskVariable; import org.netbeans.gradle.project.api.task.TaskVariableMap; public final class CombinedTaskVariableMap implements TaskVariableMap { private final TaskVariableMap[] maps; public CombinedTaskVariableMap(Collection<? extends TaskVariableMap> maps) { this(maps.toArray(new TaskVariableMap[maps.size()])); } public CombinedTaskVariableMap(TaskVariableMap... maps) { this.maps = maps.clone(); CollectionUtils.checkNoNullElements(Arrays.asList(this.maps), "maps"); } @Override public String tryGetValueForVariable(TaskVariable variable) { for (TaskVariableMap map: maps) { String value = map.tryGetValueForVariable(variable); if (value != null) { return value; } } return null; } }