package org.ovirt.engine.core.bll.network.vm.mac; import java.util.Arrays; import java.util.List; import java.util.Objects; import javax.inject.Inject; import org.ovirt.engine.core.bll.network.macpool.ReadMacPool; import org.ovirt.engine.core.bll.network.vm.ExternalVmMacsFinder; import org.ovirt.engine.core.common.errors.EngineMessage; import org.ovirt.engine.core.compat.Guid; public class VmMacsValidationsFactory { private final ExternalVmMacsFinder externalVmMacsFinder; @Inject VmMacsValidationsFactory(ExternalVmMacsFinder externalVmMacsFinder) { this.externalVmMacsFinder = Objects.requireNonNull(externalVmMacsFinder); } private VmMacsValidation createOutOfRangeValidation(Guid clusterId) { return new VmMacsValidation( EngineMessage.NETWORK_OUT_OF_RANGE_MACS, new OutOfRangeVmMacsFinder(externalVmMacsFinder, clusterId)); } private VmMacsValidation createMacsInUseValidation(ReadMacPool macPool) { return new VmMacsValidation( EngineMessage.NETWORK_MAC_ADDRESS_IN_USE_DETAILED, new VmMacsInUseFinder(macPool)); } public List<VmMacsValidation> createVmMacsValidationList(Guid clusterId, ReadMacPool macPool) { return Arrays.asList( createOutOfRangeValidation(clusterId), createMacsInUseValidation(macPool)); } }