package org.ovirt.engine.api.restapi.resource; import javax.ws.rs.core.Response; import org.ovirt.engine.api.model.Permit; import org.ovirt.engine.api.resource.PermitResource; import org.ovirt.engine.core.common.action.ActionGroupsToRoleParameter; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.ActionGroup; import org.ovirt.engine.core.compat.Guid; public class BackendPermitResource extends AbstractBackendSubResource<Permit, ActionGroup> implements PermitResource { protected BackendPermitsResource parent; public BackendPermitResource(String id, BackendPermitsResource parent) { super(id, Permit.class, ActionGroup.class); this.parent = parent; } public BackendPermitsResource getParent() { return parent; } @Override public Permit get() { ActionGroup entity = parent.lookupId(id); if (entity == null) { return notFound(); } return addLinks(map(entity)); } @Override protected Permit addParents(Permit permit) { return parent.addParents(permit); } @Override public Response remove() { get(); ActionGroup entity = parent.lookupId(id); if (entity == null) { notFound(); return null; } return performAction(VdcActionType.DetachActionGroupsFromRole, new ActionGroupsToRoleParameter(parent.roleId, asList(entity))); } @Override protected Guid asGuidOr404(String id) { // Permit ID is not a GUID return null; } }