| Interface | osid.course.program.ProgramQuerySession | ||
|---|---|---|---|
| Implements | osid.OsidSession | ||
| Description | 
                 This session provides methods for searching among  This session defines views that offer differing behaviors for searching. 
  Programs may have a query record indicated by their 
                respective record types. The query record is accessed via the 
                  | ||
| Method | getCourseCatalogId | ||
| Description | 
                     Gets the   | ||
| Return | osid.id.Id | the  CourseCatalog Id  associated with this session  | |
| Compliance | mandatory | This method must be implemented. | |
| Method | getCourseCatalog | ||
| Description | 
                     Gets the   | ||
| Return | osid.course.CourseCatalog | the course catalog | |
| Errors | OPERATION_FAILED | unable to complete request | |
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | canSearchPrograms | ||
| Description | 
                     Tests if this user can perform   | ||
| Return | boolean |  false  if search methods are not authorized,  true 
 otherwise  | |
| Compliance | mandatory | This method must be implemented. | |
| Method | useFederatedCourseCatalogView | ||
| Description | 
                     Federates the view for methods in this session. A federated view will include programs in course catalog which are children of this course catalog in the course catalog hierarchy.  | ||
| Compliance | mandatory | This method is must be implemented. | |
| Method | useIsolatedCourseCatalogView | ||
| Description | 
                     Isolates the view for methods in this session. An isolated view restricts lookups to this course catalog only.  | ||
| Compliance | mandatory | This method is must be implemented. | |
| Method | getProgramQuery | ||
| Description | 
                     Gets a program query.  | ||
| Return | osid.course.program.ProgramQuery | the program query | |
| Compliance | mandatory | This method must be implemented. | |
| Method | getProgramsByQuery | ||
| Description | 
                     Gets a list of   | ||
| Parameters | osid.course.program.ProgramQuery | programQuery | the program query | 
| Return | osid.course.program.ProgramList | the returned  ProgramList   | |
| Errors | NULL_ARGUMENT |  programQuery  is  null   |                 |
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure | ||
| UNSUPPORTED |  programQuery  is not of this service  |                 ||
| Compliance | mandatory | This method must be implemented. | |