package org.ovirt.engine.api.restapi.resource;
import java.util.List;
import org.ovirt.engine.api.model.Disk;
import org.ovirt.engine.api.model.Disks;
import org.ovirt.engine.api.model.Template;
import org.ovirt.engine.api.resource.TemplateDiskResource;
import org.ovirt.engine.api.resource.TemplateDisksResource;
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 BackendTemplateDisksResource
extends AbstractBackendCollectionResource<Disk, org.ovirt.engine.core.common.businessentities.storage.Disk>
implements TemplateDisksResource {
private Guid templateId;
public BackendTemplateDisksResource(Guid templateId) {
super(Disk.class, org.ovirt.engine.core.common.businessentities.storage.Disk.class);
this.templateId = templateId;
}
@Override
public Disks list() {
return mapCollection(getBackendCollection(VdcQueryType.GetVmTemplatesDisks, new IdQueryParameters(templateId)));
}
private Disks mapCollection(List<org.ovirt.engine.core.common.businessentities.storage.Disk> entities) {
Disks collection = new Disks();
for (org.ovirt.engine.core.common.businessentities.storage.Disk entity : entities) {
collection.getDisks().add(addLinks(map(entity)));
}
return collection;
}
@Override
public TemplateDiskResource getDiskResource(String id) {
return inject(new BackendTemplateDiskResource(id, templateId));
}
@Override
public Disk addParents(Disk disk) {
disk.setTemplate(new Template());
disk.getTemplate().setId(templateId.toString());
return disk;
}
}