package org.ovirt.engine.core.vdsbroker.builder.vminfo; import java.util.Map; import java.util.Objects; import javax.inject.Inject; import javax.inject.Singleton; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.ClusterDao; import org.ovirt.engine.core.dao.VdsNumaNodeDao; import org.ovirt.engine.core.dao.VmDeviceDao; import org.ovirt.engine.core.dao.VmNumaNodeDao; import org.ovirt.engine.core.dao.network.NetworkDao; @Singleton public class VmInfoBuilderFactory { private final ClusterDao clusterDao; private final NetworkDao networkDao; private final VdsNumaNodeDao vdsNumaNodeDao; private final VmDeviceDao vmDeviceDao; private final VmNumaNodeDao vmNumaNodeDao; private final VmInfoBuildUtils vmInfoBuildUtils; @Inject VmInfoBuilderFactory( ClusterDao clusterDao, NetworkDao networkDao, VdsNumaNodeDao vdsNumaNodeDao, VmDeviceDao vmDeviceDao, VmNumaNodeDao vmNumaNodeDao, VmInfoBuildUtils vmInfoBuildUtils) { this.clusterDao = Objects.requireNonNull(clusterDao); this.networkDao = Objects.requireNonNull(networkDao); this.vdsNumaNodeDao = Objects.requireNonNull(vdsNumaNodeDao); this.vmDeviceDao = Objects.requireNonNull(vmDeviceDao); this.vmNumaNodeDao = Objects.requireNonNull(vmNumaNodeDao); this.vmInfoBuildUtils = Objects.requireNonNull(vmInfoBuildUtils); } public VmInfoBuilder createVmInfoBuilder(VM vm, Guid vdsId, Map<String, Object> createInfo) { return new VmInfoBuilderImpl( vm, vdsId, createInfo, clusterDao, networkDao, vdsNumaNodeDao, vmDeviceDao, vmNumaNodeDao, vmInfoBuildUtils); } }