package org.sakaiproject.delegatedaccess.model; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import org.sakaiproject.site.api.Site; import org.sakaiproject.user.api.User; public class SiteSearchResult implements Serializable { private SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy"); private SimpleDateFormat formatWithTime = new SimpleDateFormat("MM/dd/yyyy h:mm a"); private SiteSerialized site; private List<UserSerialized> instructors = new ArrayList(); private String[] access; private Date shoppingPeriodStartDate; private Date shoppingPeriodEndDate; private String[] restrictedAuthTools; private String[] restrictedPublicTools; private Date modified; private String modifiedBy; private String modifiedBySortName; private boolean hasInstructor = true; public SiteSearchResult(Site site, List<User> instructors, String termProp){ this.site = new SiteSerialized(site, termProp); this.instructors = new ArrayList<UserSerialized>(); for(User user : instructors){ this.instructors.add(new UserSerialized(user)); } } public SiteSearchResult(SiteSerialized site, List<User> instructors, String termProp){ this.site = site; this.instructors = new ArrayList<UserSerialized>(); for(User user : instructors){ this.instructors.add(new UserSerialized(user)); } } public SiteSerialized getSite() { return site; } public List<UserSerialized> getInstructors() { return instructors; } public void setInstructors(List<UserSerialized> instructors) { this.instructors = instructors; } public void addInstructor(User user){ instructors.add(new UserSerialized(user)); } public String getInstructorsString(){ String instructors = ""; for(UserSerialized user : getInstructors()){ if(!"".equals(instructors)){ instructors += "; "; } instructors += user.getSortName(); } return instructors; } public String[] getAccess() { return access; } public void setAccess(String[] access) { this.access = access; } public String getAccessString(){ return getAccess() != null && getAccess().length == 2 ? getAccess()[0] + ":" + getAccess()[1] : ""; } public String getAccessRoleString(){ return getAccess() != null && getAccess().length == 2 ? getAccess()[1] : ""; } public Date getShoppingPeriodStartDate() { return shoppingPeriodStartDate; } public void setShoppingPeriodStartDate(Date shoppingPeriodStartDate) { this.shoppingPeriodStartDate = shoppingPeriodStartDate; } public Date getShoppingPeriodEndDate() { return shoppingPeriodEndDate; } public void setShoppingPeriodEndDate(Date shoppingPeriodEndDate) { this.shoppingPeriodEndDate = shoppingPeriodEndDate; } public String getShoppingPeriodStartDateStr(){ if(getShoppingPeriodStartDate() == null){ return ""; }else{ return format.format(getShoppingPeriodStartDate()); } } public String getShoppingPeriodEndDateStr(){ if(getShoppingPeriodEndDate() == null){ return ""; }else{ return format.format(getShoppingPeriodEndDate()); } } public String getSiteTerm(){ Object prop = getSite().getTerm(); return prop == null ? "" : prop.toString(); } public String[] getRestrictedAuthTools() { return restrictedAuthTools; } public void setRestrictedAuthTools(String[] restrictedTools) { this.restrictedAuthTools = restrictedTools; } public String getAuthToolsString(Map<String, String> toolsMap){ String restrictedToolsStr = ""; if(getRestrictedAuthTools() != null){ for(String tool : getRestrictedAuthTools()){ if(!"".equals(restrictedToolsStr)){ restrictedToolsStr += ", "; } String toolName = tool; if(toolsMap.containsKey(toolName)){ toolName = toolsMap.get(toolName); } restrictedToolsStr += toolName; } } return restrictedToolsStr; } public String[] getRestrictedPublicTools() { return restrictedPublicTools; } public void setRestrictedPublicTools(String[] restrictedTools) { this.restrictedPublicTools = restrictedTools; } public String getPublicToolsString(Map<String, String> toolsMap){ String restrictedToolsStr = ""; if(getRestrictedPublicTools() != null){ for(String tool : getRestrictedPublicTools()){ if(!"".equals(restrictedToolsStr)){ restrictedToolsStr += ", "; } String toolName = tool; if(toolsMap.containsKey(toolName)){ toolName = toolsMap.get(toolName); } restrictedToolsStr += toolName; } } return restrictedToolsStr; } public String getSiteUrl(){ return getSite().getUrl(); } public String getSiteTitle(){ return getSite().getTitle(); } public String getSiteId(){ return getSite().getId(); } public String getSiteReference(){ return getSite().getReference(); } public class UserSerialized implements Serializable{ private String userId; private String displayName; private String sortName; public UserSerialized(User user){ this.userId = user.getId(); this.displayName = user.getDisplayName(); this.sortName = user.getSortName(); } public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public String getDisplayName() { return displayName; } public void setDisplayName(String displayName) { this.displayName = displayName; } public String getSortName() { return sortName; } public void setSortName(String sortName) { this.sortName = sortName; } } public Date getModified() { return modified; } public void setModified(Date modified) { this.modified = modified; } public String getModifiedBy() { return modifiedBy; } public void setModifiedBy(String modifiedBy) { this.modifiedBy = modifiedBy; } public String getModifiedBySortName() { return modifiedBySortName; } public void setModifiedBySortName(String modifiedBySortName) { this.modifiedBySortName = modifiedBySortName; } public String getModifiedStr(){ if(getModified() == null){ return ""; }else{ return formatWithTime.format(getModified()); } } public void setHasInstructor(boolean hasInstructor) { this.hasInstructor = hasInstructor; } public boolean isHasInstructor() { return hasInstructor; } }