package org.ovirt.engine.api.restapi.resource; import org.ovirt.engine.api.model.Group; import org.ovirt.engine.api.resource.AssignedPermissionsResource; import org.ovirt.engine.api.resource.AssignedRolesResource; import org.ovirt.engine.api.resource.AssignedTagsResource; import org.ovirt.engine.api.resource.GroupResource; import org.ovirt.engine.core.common.businessentities.ad_groups; import org.ovirt.engine.core.common.queries.GetAdGroupByIdParameters; import org.ovirt.engine.core.common.queries.MultilevelAdministrationByAdElementIdParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; import static org.ovirt.engine.api.restapi.resource.BackendGroupsResource.SUB_COLLECTIONS; public class BackendGroupResource extends AbstractBackendSubResource<Group, ad_groups> implements GroupResource { private BackendGroupsResource parent; public BackendGroupResource(String id, BackendGroupsResource parent) { super(id, Group.class, ad_groups.class, SUB_COLLECTIONS); this.parent = parent; } @Override public Group get() { return performGet(VdcQueryType.GetAdGroupById, new GetAdGroupByIdParameters(guid)); } @Override public AssignedRolesResource getRolesResource() { return inject(new BackendAssignedRolesResource(guid)); } @Override public AssignedTagsResource getTagsResource() { return inject(new BackendGroupTagsResource(id)); } @Override public AssignedPermissionsResource getPermissionsResource() { return inject(new BackendAssignedPermissionsResource(guid, VdcQueryType.GetPermissionsByAdElementId, new MultilevelAdministrationByAdElementIdParameters(guid), Group.class)); } public BackendGroupsResource getParent() { return parent; } }