001: /**********************************************************************************
002: * $URL: https://source.sakaiproject.org/svn/profile/tags/sakai_2-4-1/profile-api/src/java/org/sakaiproject/api/app/profile/ProfileManager.java $
003: * $Id: ProfileManager.java 20879 2007-02-01 21:07:25Z jholtzman@berkeley.edu $
004: ***********************************************************************************
005: *
006: * Copyright (c) 2003, 2004, 2005, 2006 The Sakai Foundation.
007: *
008: * Licensed under the Educational Community License, Version 1.0 (the "License");
009: * you may not use this file except in compliance with the License.
010: * You may obtain a copy of the License at
011: *
012: * http://www.opensource.org/licenses/ecl1.php
013: *
014: * Unless required by applicable law or agreed to in writing, software
015: * distributed under the License is distributed on an "AS IS" BASIS,
016: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
017: * See the License for the specific language governing permissions and
018: * limitations under the License.
019: *
020: **********************************************************************************/package org.sakaiproject.api.app.profile;
021:
022: import java.util.List;
023: import java.util.Map;
024: import java.util.Set;
025:
026: /**
027: * @author rshastri
028: */
029: public interface ProfileManager {
030: public void init();
031:
032: public void destroy();
033:
034: /**
035: * Save or Update an existing profile
036: *
037: * @param profile
038: */
039: public void save(Profile profile);
040:
041: /**
042: * Returns user mutable profile of currently logged in user
043: *
044: * @return
045: */
046: public Profile getProfile();
047:
048: /**
049: * Returns a map of user IDs to Profiles.
050: *
051: * @param userIds A collection of user IDs
052: * @return
053: */
054: public Map<String, Profile> getProfiles(Set<String> userIds);
055:
056: /**
057: * Searches the list of user profiles matching given search criteria
058: *
059: * @param searchString
060: * @return
061: */
062: public List findProfiles(String searchString);
063:
064: /**
065: * Searches the university photo for given username
066: *
067: * @param uid
068: * @return
069: */
070: public byte[] getInstitutionalPhotoByUserId(String uid);
071:
072: /**
073: * Allow user with update access to site view id photo of member users
074: *
075: * @param uid
076: * @param siteMaintainer
077: * @return
078: */
079: public byte[] getInstitutionalPhotoByUserId(String uid,
080: boolean siteMaintainer);
081:
082: // Helper methods
083: /**
084: * @param profile
085: * @return
086: */
087: public boolean displayCompleteProfile(Profile profile);
088:
089: /**
090: * @param profile
091: * @return
092: */
093: public boolean isCurrentUserProfile(Profile profile);
094:
095: /**
096: * @param profile
097: * @return
098: */
099: public boolean isDisplayPictureURL(Profile profile);
100:
101: /**
102: * @param profile
103: * @return
104: */
105: public boolean isDisplayUniversityPhoto(Profile profile);
106:
107: /**
108: * @param profile
109: * @return
110: */
111: public boolean isDisplayUniversityPhotoUnavailable(Profile profile);
112:
113: /**
114: * @param profile
115: * @return
116: */
117: public boolean isDisplayNoPhoto(Profile profile);
118:
119: /**
120: * @param profile
121: * @return
122: */
123: public boolean isShowTool();
124:
125: public boolean isShowSearch();
126:
127: /**
128: * @param id
129: * @return
130: */
131: public Profile getUserProfileById(String id);
132:
133: }
|