| Interface | osid.OsidRelationship | ||
|---|---|---|---|
| Implements | osid.OsidObject | ||
osid.Temporal | |||
| Description |
A Unlike other Once the student has dropped the course, the relationship
has expired such that
The relationships are:
T1. R1 {effective, September 1 -> end of term, data=grades}
T2. R1 {ineffective, September 1 -> September 10, data=grades}
T3. R1 {ineffective, September 1 -> September 10, data=grades}
R2 {effective, September 10 -> end of term, data=p/f}
An OSID Provider may also permit dates to be set in the future in which case the relationship can become automatically become effective at a future time and later expire. More complex effectiveness management can be done through other rule-based services. OSID Consumer lookups and queries of relationships need to consider that it may be only effective relationshps are of interest. | ||
| Method | hasEndReason | ||
| Description |
Tests if a reason this relationship came to an end is known. | ||
| Return | boolean | true if an end reason is available, false
otherwise | |
| Errors | ILLEGAL_STATE | isEffective() is true | |
| Compliance | mandatory | This method must be implemented. | |
| Method | getEndReasonId | ||
| Description |
Gets a state | ||
| Return | osid.id.Id | a state Id | |
| Errors | ILLEGAL_STATE | hasEndReason() is false | |
| Compliance | mandatory | This method must be implemented. | |
| Method | getEndReason | ||
| Description |
Gets a state indicating why this relationship has ended. | ||
| Return | osid.process.State | a state | |
| Errors | ILLEGAL_STATE | hasEndReason() is false | |
| OPERATION_FAILED | unable to complete request | ||
| Compliance | mandatory | This method must be implemented. | |