package org.ovirt.engine.core.bll.network.vm.mac;
import java.util.Collection;
import java.util.Objects;
import org.ovirt.engine.core.bll.ValidationResult;
import org.ovirt.engine.core.common.businessentities.VM;
import org.ovirt.engine.core.common.errors.EngineMessage;
import org.ovirt.engine.core.utils.ReplacementUtils;
public class VmMacsValidation {
private final EngineMessage violationMessage;
private final ProblematicVmMacsFinder problematicVmMacsFinder;
VmMacsValidation(EngineMessage violationMessage, ProblematicVmMacsFinder problematicVmMacsFinder) {
this.violationMessage = Objects.requireNonNull(violationMessage);
this.problematicVmMacsFinder = Objects.requireNonNull(problematicVmMacsFinder);
}
public ValidationResult validate(VM vm) {
Collection<String> problematicMacs = problematicVmMacsFinder.findProblematicMacs(vm);
return ValidationResult.failWith(violationMessage,
ReplacementUtils.getListVariableAssignmentString(violationMessage, problematicMacs))
.unless(problematicMacs.isEmpty());
}
}