Package org.osid.profile
The Open Service Interface Definitions for the org.osid.profile service.
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.
ProfileItems
ProfileItems 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 ProfileEntry is an OsidRelationship between a
ProfileItem and a user. Explicit profile entries can be created using
either the Resource or an Agent. A Resource that maps to
multiple Agents or a Resource that represents a group of
other Resources may result in the implicit existence of additional
profile entries.
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 Id in the context of an Agent to
determine how to proceed. In the Profile OSID, the Agent who is
authenticated to the Profile service itself is used.
Profile Cataloging
ProfileEntries 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 ProfileEntries and a Profile Batch OSID for
managing ProfileItems and ProfileEntries in bulk.
Example
An 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
ProfileEntryNotificationSession , ProfileItemNotificationSession
and ProfileNotificationSession .
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");}
}
Copyright © 2010 Ingenescus. All Rights Reserved.
This Work is being provided by the copyright holder(s) subject to the following license. By obtaining, using and/or copying this Work, you agree that you have read, understand, and will comply with the following terms and conditions.
Permission to use, copy and distribute unmodified versions of this Work, for any purpose, without fee or royalty is hereby granted, provided that you include the above copyright notices and the terms of this license on ALL copies of the Work or portions thereof.
You may nodify or create Derivatives of this Work only for your internal purposes. You shall not distribute or transfer any such Derivative of this Work to any location or to any third party. For the purposes of this license, "Derivative" shall mean any derivative of the Work as defined in the United States Copyright Act of 1976, such as a translation or modification.
This Work and the information contained herein is provided on an "AS IS" basis WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE WORK OR THE USE OR OTHER DEALINGS IN THE WORK.
The export of software employing encryption technology may require a specific license from the United States Government. It is the responsibility of any person or organization contemplating export to obtain such a license before exporting this Work.
-
InterfacesClassDescriptionA profile defines a collection of profile entries and items.This session creates, updates, and deletes
Profiles.A ProfileEntry is a mapping among anAgentorResource, and aProfileItem.This session creates and removesProfileEntries.A profile entry condition interface.This is the form for creating and updatingProfileEntries.Like allOsidLists,ProfileEntryListprovides a means for accessingProfileEntryelements sequentially either one at a time or many at a time.This session defines methods to search and retrieveProfileEntries.This session defines methods to receive asynchronous notifications on adds/changes toProfileEntries.This session provides methods to re-assign profile entries toProfile.This session provides methods to retrieveProfileEntrytoProfilemappings.The query for profile entries.The query inspector to examine profile entry queries.This session provides methods for searchingProfileEntries.The profile entry receiver is the consumer supplied interface for receiving notifications pertaining to new, updated or deletedProfileEntries.ProfileEntrySearchdefines the interface for specifying profile entry search options.An interface for specifying the ordering of search results.This interface provides a means to capture results of a search.This session provides methods for searchingProfileEntries.This session manages queries and sequencing to create "smart" dynamic catalogs.This is the form for creating and updating profiles.This session defines methods for managing a hierarchy ofProfiles.This session defines methods for traversing a hierarchy ofProfiles.AProfileItemrepresents an item in a profile.This session creates, updates, and deletesProfileItems.This is the form for creating and updatingProfileItems.Like allOsidLists,ProfileItemListprovides a means for accessingProfileItemelements sequentially either one at a time or many at a time.This session provides methods for retrievingProfileItems.This session defines methods to receive asynchronous notifications on adds/changes toProfileItemobjects.This session provides methods to re-assignProfileItemstoProfiles.This session provides methods to retrieveProfileItemtoProfilemappings.This is the query for searching profile items.This is the query inspector for examining profile item queries.This session provides methods for searchingProfileItems.The profile item receiver is the consumer supplied interface for receiving notifications pertaining to new, updated or deletedProfileItems.ProfileItemSearchdefines the interface for specifying profile item search options.An interface for specifying the ordering of search results.This interface provides a means to capture results of a search.This session provides methods for searchingProfileItems.This session manages queries and sequencing to create "smart" dynamic catalogs.Like allOsidLists,ProfileListprovides a means for accessingProfileelements sequentially either one at a time or many at a time.This session provides methods for retrievingProfiles.The profile manager provides access to profile sessions and provides interoperability tests for various aspects of this service.This interface is a container for a partial hierarchy retrieval.Like allOsidLists,ProfileNodeListprovides a means for accessingProfileNodeelements sequentially either one at a time or many at a time.This session defines methods to receive notifications on adds/changes toProfiles.TheProfileProfiledescribes the interoperability among authentication services.The profile manager provides access to profile sessions and provides interoperability tests for various aspects of this service.This is the query for searching profiles.This is the query inspector to examine profile queries.This session provides methods for searching amongProfiles.The profile receiver is the consumer supplied interface for receiving notifications pertaining to new, updated or deletedProfileobjects.The interface for governing profile searches.An interface for specifying the ordering of search results.This interface provides a means to capture results of a search.This session provides methods for searching amongProfiles.This is the basic session for querying profiles.