Skip to content

Commit

Permalink
DASH-344 extending entity broker to have directUrl
Browse files Browse the repository at this point in the history
  • Loading branch information
pushyamig committed Sep 24, 2015
1 parent abdb22b commit 87d91bc
Show file tree
Hide file tree
Showing 3 changed files with 119 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ public class CalendarItem implements Serializable {
protected String subtype;
protected RepeatingCalendarItem repeatingCalendarItem = null;
protected Integer sequenceNumber = null;
protected String infoLinkURL;


/**
Expand Down Expand Up @@ -245,6 +246,14 @@ public void setSubtype(String subtype) {
this.subtype = subtype;
}

public String getInfoLinkURL() {
return infoLinkURL;
}

public void setInfoLinkURL(String infoLinkURL) {
this.infoLinkURL = infoLinkURL;
}

/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ public class NewsItem implements Serializable {
protected SourceType sourceType;
protected String subtype;
protected String groupingIdentifier;
protected String infoLinkURL;

protected int itemCount = 0;

Expand Down Expand Up @@ -254,6 +255,13 @@ public void setSourceType(SourceType sourceType) {
this.sourceType = sourceType;
generateGroupingIdentifier();
}
public String getInfoLinkURL() {
return infoLinkURL;
}

public void setInfoLinkURL(String infoLinkURL) {
this.infoLinkURL = infoLinkURL;
}

/* (non-Javadoc)
* @see java.lang.Object#toString()
Expand Down Expand Up @@ -312,4 +320,5 @@ protected void generateGroupingIdentifier() {
this.groupingIdentifier = buf.toString();
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@
*/
package org.sakaiproject.dash.logic;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

import net.sf.ehcache.Cache;

Expand All @@ -14,6 +16,7 @@
import org.sakaiproject.dash.app.SakaiProxy;
import org.sakaiproject.dash.dao.DashboardDao;
import org.sakaiproject.dash.entity.DashboardEntityInfo;
import org.sakaiproject.dash.model.CalendarItem;
import org.sakaiproject.dash.model.CalendarLink;
import org.sakaiproject.dash.model.NewsItem;
import org.sakaiproject.dash.model.NewsLink;
Expand Down Expand Up @@ -91,7 +94,7 @@ public int countNewsLinksByGroupId(String sakaiUserId,
@Override
public List<NewsLink> getCurrentNewsLinks(String sakaiId, String siteId) {
List<NewsLink> links = dao.getCurrentNewsLinks(sakaiId, siteId);

if(links != null) {
for(NewsLink link : links) {
NewsItem item = link.getNewsItem();
Expand All @@ -108,27 +111,103 @@ public List<NewsLink> getCurrentNewsLinks(String sakaiId, String siteId) {
item.setTitle(typeObj.getGroupTitle(itemCount, item.getContext().getContextTitle(), item.getNewsTimeLabelKey()));
}
}
}else{
//When getItemCount() > 1 the infoLinkUrl is null and hence we don't need to run this call.
if(item!=null){
setItemInfoLinkUrl(item);
}
}
}
}

return links;
}

private void setItemInfoLinkUrl(NewsItem item) {
if(item!=null){
SourceType sourceType = item.getSourceType();
if(sourceType != null) {
DashboardEntityInfo typeObj = dashboardLogic.getDashboardEntityInfo(sourceType.getIdentifier());
if(typeObj != null) {
//getValues() take one of the parameter as Locale code and this used for logging warn messages
//so sending null should be fine here.
Map<String, Object> values = typeObj.getValues(item.getEntityReference(), null);
List<Map<String,String>> moreInfo=(ArrayList<Map<String, String>>) values.get(DashboardEntityInfo.VALUE_MORE_INFO);
if(moreInfo!=null){
for (Map<String, String> map : moreInfo) {
item.setInfoLinkURL(map.get(DashboardEntityInfo.VALUE_INFO_LINK_URL));

}
}else{
logger.debug("more.Info is null");
}
}else{
logger.debug("DashboardEntityInfo is null");
}
}else{
logger.debug("SourceType like is null");
}

}else{
logger.debug("NewsItem is null");
}

}
private void setItemInfoLinkUrl(CalendarItem item) {
if(item!=null){
SourceType sourceType = item.getSourceType();
if(sourceType != null) {
DashboardEntityInfo typeObj = dashboardLogic.getDashboardEntityInfo(sourceType.getIdentifier());
if(typeObj != null) {
//getValues() take one of the parameter as Locale code and this used for logging warn messages
//so sending null should be fine here.
Map<String, Object> values = typeObj.getValues(item.getEntityReference(), null);
List<Map<String,String>> moreInfo=(ArrayList<Map<String, String>>) values.get(DashboardEntityInfo.VALUE_MORE_INFO);
if(moreInfo!=null){
for (Map<String, String> map : moreInfo) {
item.setInfoLinkURL(map.get(DashboardEntityInfo.VALUE_INFO_LINK_URL));

}
}else{
logger.debug("more.Info is null");
}
}else{
logger.debug("DashboardEntityInfo is null");
}
}else{
logger.debug("SourceType like is null");
}

}else{
logger.debug("NewsItem is null");
}

}

/* (non-Javadoc)
* @see org.sakaiproject.dash.app.DashboardUserLogic#getFutureCalendarLinks(java.lang.String, java.lang.String, boolean)
*/
@Override
public List<CalendarLink> getFutureCalendarLinks(String sakaiUserId, String contextId, boolean hidden) {
return dao.getFutureCalendarLinks(sakaiUserId, contextId, hidden);
List<CalendarLink> futureCalendarLinks = dao.getFutureCalendarLinks(sakaiUserId, contextId, hidden);
for (CalendarLink calendarLink : futureCalendarLinks) {
CalendarItem calendarItem = calendarLink.getCalendarItem();
setItemInfoLinkUrl(calendarItem);
}
return futureCalendarLinks;
}

/* (non-Javadoc)
* @see org.sakaiproject.dash.app.DashboardUserLogic#getHiddenNewsLinks(java.lang.String, java.lang.String)
*/
@Override
public List<NewsLink> getHiddenNewsLinks(String sakaiId, String siteId) {
return dao.getHiddenNewsLinks(sakaiId, siteId);
List<NewsLink> hiddenNewsLinks = dao.getHiddenNewsLinks(sakaiId, siteId);
for (NewsLink newsLink : hiddenNewsLinks) {
NewsItem item = newsLink.getNewsItem();
setItemInfoLinkUrl(item);
}
return hiddenNewsLinks;
}

/* (non-Javadoc)
Expand All @@ -145,23 +224,38 @@ public List<NewsLink> getNewsLinksByGroupId(String sakaiUserId,
*/
@Override
public List<CalendarLink> getPastCalendarLinks(String sakaiUserId, String contextId, boolean hidden) {
return dao.getPastCalendarLinks(sakaiUserId, contextId, hidden);
List<CalendarLink> pastCalendarLinks = dao.getPastCalendarLinks(sakaiUserId, contextId, hidden);
for (CalendarLink calendarLink : pastCalendarLinks) {
CalendarItem calendarItem = calendarLink.getCalendarItem();
setItemInfoLinkUrl(calendarItem);
}
return pastCalendarLinks;
}

/* (non-Javadoc)
* @see org.sakaiproject.dash.app.DashboardUserLogic#getStarredCalendarLinks(java.lang.String, java.lang.String)
*/
@Override
public List<CalendarLink> getStarredCalendarLinks(String sakaiUserId, String contextId) {
return dao.getStarredCalendarLinks(sakaiUserId, contextId);
List<CalendarLink> starredCalendarLinks = dao.getStarredCalendarLinks(sakaiUserId, contextId);
for (CalendarLink calendarLink : starredCalendarLinks) {
CalendarItem calendarItem = calendarLink.getCalendarItem();
setItemInfoLinkUrl(calendarItem);
}
return starredCalendarLinks;
}

/* (non-Javadoc)
* @see org.sakaiproject.dash.app.DashboardUserLogic#getStarredNewsLinks(java.lang.String, java.lang.String)
*/
@Override
public List<NewsLink> getStarredNewsLinks(String sakaiId, String siteId) {
return dao.getStarredNewsLinks(sakaiId, siteId);
List<NewsLink> starredNewsLinks = dao.getStarredNewsLinks(sakaiId, siteId);
for (NewsLink newsLink : starredNewsLinks) {
NewsItem item = newsLink.getNewsItem();
setItemInfoLinkUrl(item);
}
return starredNewsLinks;
}

/* (non-Javadoc)
Expand Down

0 comments on commit 87d91bc

Please sign in to comment.