| Package | osid.profile |
|---|---|
| Title | Profile Open Service Interface Definitions |
| Version | 3.0.0 |
| Description |
The Profile OSID serves to help applications make decisions based on user attributes. The format and interpretation of the user attributes are abstracted to allow the application to ask questions of the profile service. The Profile OSID can be used to make application decisions regarding localization, accessibility, or roles. ProfileItemsProfileItems represent questions an
application may wish to ask in the context of a user. The
evaluation of a ProfileItem always returns a boolean
result. Examples may be "display menu?" or "use audio?"
ProfileEntry A The Profile OSID is similar in operation to the
Authorization OSID without a Qualifier. In both cases, an
OSID Consumer asks questions identified by an OSID
Profile CatalogingProfileEntries and ProfileItems
may be organized into one or many Profiles .
This serves to categorize profile data for the purpose of
browsing or auditing. Profiles are
hierarchical where each node includes all the profile data
of its children. A single root node will make available
all known profile entries and is a reasonable choice for a
default Profile for a non-federated aware consumer. A
federated profile scheme is one in which
Profiles are available for selection.
Sub Packages The profile OSID contains a Profile Rules OSID for
managing the effectiveness of ExampleAn application wishing to display an additional menu for users who live in Maine may traditionally do something like: if (user.getAttribute("location") == "Maine") {
displayAdditionalMenu();
}
The Profile OSID rephrases the question to the application viewpoint to allow for the extensibility and variation of interpretation of the attributes. if (hasProfileEntry(displayAdditionalMenuId)) {
displayAdditionalMenu();
}
Certain consumers may wish to be notified of changes
within the service. Profile supports notifications via
if (manager.supportsProfileEntryNotification()) {
ProfileEntryNotificationSession ans = manager.getProfileEntryNotificationSession(receiver);
ans.registerForDeletedProfileEntries();
}
ProfileEntryReceiver receiver {
newProfileEntry(ProfileEntry a) {print("profile entry created");}
deletedProfileEntry(ProfileEntry a) {print("profile entry removed");}
}
|