package org.ovirt.engine.api.restapi.resource; import static org.ovirt.engine.api.restapi.resource.BackendRolesResource.SUB_COLLECTIONS; import org.ovirt.engine.api.model.Role; import org.ovirt.engine.api.model.User; import org.ovirt.engine.api.resource.PermitsResource; import org.ovirt.engine.api.resource.RoleResource; import org.ovirt.engine.core.common.businessentities.roles; import org.ovirt.engine.core.common.queries.MultilevelAdministrationByRoleIdParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.compat.Guid; public class BackendRoleResource extends AbstractBackendSubResource<Role, roles> implements RoleResource { private Guid userId; public BackendRoleResource(String id) { this(id, null); } public BackendRoleResource(String id, Guid userId) { super(id, Role.class, roles.class, SUB_COLLECTIONS); this.userId = userId; } @Override public Role get() { return performGet(VdcQueryType.GetRoleById, new MultilevelAdministrationByRoleIdParameters(guid)); } @Override protected Role addParents(Role role) { if (userId != null) { role.setUser(new User()); role.getUser().setId(userId.toString()); } return role; } @Override public PermitsResource getPermitsResource() { return inject(new BackendPermitsResource(guid)); } }