All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sakaiproject.section.api.SectionAwareness Maven / Gradle / Ivy

The newest version!
/**********************************************************************************
 * $URL$
 * $Id$
 ***********************************************************************************
 *
 * Copyright (c) 2005, 2006, 2008 The Sakai Foundation
 *
 * Licensed under the Educational Community License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       http://www.opensource.org/licenses/ECL-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 **********************************************************************************/

package org.sakaiproject.section.api;

import java.util.List;
import java.util.Locale;

import org.sakaiproject.section.api.coursemanagement.CourseSection;
import org.sakaiproject.section.api.coursemanagement.EnrollmentRecord;
import org.sakaiproject.section.api.facade.Role;

/**
 * 

* Provides section awareness to tools needing read-only access to section * information, such as section membership. *

* * @author Ray Davis * @author Josh Holtzman */ public interface SectionAwareness { /** The permission "marker" indicating that a role is the student role */ public static final String STUDENT_MARKER = "section.role.student"; /** The permission "marker" indicating that a role is the ta role */ public static final String TA_MARKER = "section.role.ta"; /** The permission "marker" indicating that a role is the instructor role */ public static final String INSTRUCTOR_MARKER = "section.role.instructor"; /** * Gets the sections associated with this site context. * * @param siteContext The site context * * @return The List of * {@link org.sakaiproject.section.api.coursemanagement.CourseSection CourseSections} * associated with this site context. */ public List getSections(String siteContext); /** * Gets the list of section categories. In sakai 2.1, there will be only a * single set of categories. They will not be configurable on a per-course * or per-context bases. In future versions, the list of categories will * be configurable at the site level. * * @param siteContext The site context * * @return A List of unique Strings that identify the available section * categories. These should be internationalized for display using * {@link SectionAwareness#getCategoryName(String, Locale) getCategoryName}. */ public List getSectionCategories(String siteContext); /** * Gets a {@link org.sakaiproject.section.api.coursemanagement.CourseSection CourseSection} * by its uuid. * * @param sectionUuid * * @return */ public CourseSection getSection(String sectionUuid); /** * Gets the site membership for a given context. * * @param siteContext The site context * @param role Required role * * @return A {@link java.util.List List} of * {@link org.sakaiproject.section.api.coursemanagement.ParticipationRecord * ParticipationRecords} representing the users in the given site, playing * the given {@link org.sakaiproject.section.api.facade.Role Role}. * */ public List getSiteMembersInRole(String siteContext, Role role); /** * Finds site members in the given context and {@link org.sakaiproject.section.api.facade.Role Role} * with a matching name or display id. Pattern matching is TBD, but will * probably match in any of the following cases: * *
    *
  • Display Name = pattern*
  • *
  • Sort Name = pattern*
  • *
  • Display Id (installation defined, either Email or enterprise id) = pattern*
  • *
* * @param siteContext The site context * @param role The role the user must play in this context * @param pattern The pattern the user's name or id must match * * @return A {@link java.util.List List} of * {@link org.sakaiproject.section.api.coursemanagement.ParticipationRecord * ParticipationRecords} representing the users in the given site, playing * the given role, that match the string pattern. */ public List findSiteMembersInRole(String siteContext, Role role, String pattern); /** * Checks whether a user plays a particular {@link org.sakaiproject.section.api.facade.Role Role} * in a given site context. * * @param siteContext The site context * @param userUid The user's unique id * @param role The role we're checking * * @return Whether this user plays this role in this context. */ public boolean isSiteMemberInRole(String siteContext, String userUid, Role role); /** * Gets the full membership of the given section. * * @param sectionId * * @return A {@link java.util.List List} of * {@link org.sakaiproject.section.api.coursemanagement.ParticipationRecord * ParticipationRecords} representing the users in a * {@link org.sakaiproject.section.api.coursemanagement.CourseSection CourseSection}. */ public List getSectionMembers(String sectionId); /** * Gets the members of a given section that play a given role in the section. * * @param sectionUuid * @param role * * @return A {@link java.util.List List} of * {@link org.sakaiproject.section.api.coursemanagement.ParticipationRecord * ParticipationRecords} representing the users in a * {@link org.sakaiproject.section.api.coursemanagement.CourseSection CourseSection} * that play a given {@link org.sakaiproject.section.api.facade.Role Role}. */ public List getSectionMembersInRole(String sectionUuid, Role role); /** * Checks whether a user plays a particular {@link org.sakaiproject.section.api.facade.Role Role} * in a section. * * @param sectionId * @param personId * @param role * * @return Whether the user plays a particular role in a section. */ public boolean isSectionMemberInRole(String sectionId, String personId, Role role); /** * Gets all users who are members of a site but are members of zero sections * within the site. * * @param siteContext The site context * @param role The role that the user must play in the given site * * @return A List of ParticipationRecords */ public List getUnassignedMembersInRole(String siteContext, Role role); /** * Lists the sections in this context that are a member of the given category. * * @param siteContext The site context * @param categoryId * * @return A List of {@link org.sakaiproject.section.api.coursemanagement.CourseSection CourseSections} */ public List getSectionsInCategory(String siteContext, String categoryId); /** * Gets the localized name of a given category. * * @param categoryId A string identifying the category * @param locale The locale of the client * * @return An internationalized string to display for this category. * */ public String getCategoryName(String categoryId, Locale locale); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy