package org.ovirt.engine.api.restapi.resource; import java.util.List; import org.ovirt.engine.api.model.Host; import org.ovirt.engine.api.model.HostDevice; import org.ovirt.engine.api.model.HostDevices; import org.ovirt.engine.api.resource.HostDeviceResource; import org.ovirt.engine.api.resource.HostDevicesResource; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.compat.Guid; public class BackendHostDevicesResource extends AbstractBackendCollectionResource<HostDevice, org.ovirt.engine.core.common.businessentities.HostDevice> implements HostDevicesResource { private final Guid hostId; protected BackendHostDevicesResource(Guid hostId) { super(HostDevice.class, org.ovirt.engine.core.common.businessentities.HostDevice.class); this.hostId = hostId; } public Guid getHostId() { return hostId; } @Override protected HostDevice addParents(HostDevice model) { model.setHost(new Host()); model.getHost().setId(hostId.toString()); return super.addParents(model); } @Override public HostDevices list() { HostDevices model = new HostDevices(); for (org.ovirt.engine.core.common.businessentities.HostDevice hostDevice : getCollection()) { model.getHostDevices().add(addLinks(map(hostDevice, new HostDevice()))); } return model; } @Override public HostDeviceResource getDeviceResource(String id) { return inject(new BackendHostDeviceResource(id, this)); } protected List<org.ovirt.engine.core.common.businessentities.HostDevice> getCollection() { return getBackendCollection(VdcQueryType.GetHostDevicesByHostId, new IdQueryParameters(hostId)); } }