package org.ovirt.engine.api.restapi.resource;
import org.ovirt.engine.api.model.CpuProfile;
import org.ovirt.engine.api.resource.AssignedPermissionsResource;
import org.ovirt.engine.api.resource.CpuProfileResource;
import org.ovirt.engine.core.common.VdcObjectType;
import org.ovirt.engine.core.common.action.CpuProfileParameters;
import org.ovirt.engine.core.common.action.VdcActionParametersBase;
import org.ovirt.engine.core.common.action.VdcActionType;
import org.ovirt.engine.core.common.queries.GetPermissionsForObjectParameters;
import org.ovirt.engine.core.common.queries.IdQueryParameters;
import org.ovirt.engine.core.common.queries.VdcQueryType;
public class BackendCpuProfileResource extends AbstractBackendCpuProfileResource implements CpuProfileResource {
protected BackendCpuProfileResource(String id) {
super(id);
}
@Override
public CpuProfile get() {
return super.get();
}
@Override
public CpuProfile update(CpuProfile resource) {
return performUpdate(resource,
new QueryIdResolver<>(VdcQueryType.GetCpuProfileById, IdQueryParameters.class),
VdcActionType.UpdateCpuProfile,
new UpdateParametersProvider());
}
@Override
public AssignedPermissionsResource getPermissionsResource() {
return inject(new BackendAssignedPermissionsResource(guid,
VdcQueryType.GetPermissionsForObject,
new GetPermissionsForObjectParameters(guid),
CpuProfile.class,
VdcObjectType.CpuProfile));
}
protected class UpdateParametersProvider
implements ParametersProvider<CpuProfile, org.ovirt.engine.core.common.businessentities.profiles.CpuProfile> {
@Override
public VdcActionParametersBase getParameters(CpuProfile incoming,
org.ovirt.engine.core.common.businessentities.profiles.CpuProfile entity) {
org.ovirt.engine.core.common.businessentities.profiles.CpuProfile map = map(incoming, entity);
return new CpuProfileParameters(map);
}
}
}