/**********************************************************************************
* $URL: https://source.sakaiproject.org/svn/site/trunk/mergedlist-util/util/src/java/org/sakaiproject/util/MergedListEntryProviderBase.java $
* $Id: MergedListEntryProviderBase.java 105080 2012-02-24 23:10:31Z ottenhoff@longsight.com $
***********************************************************************************
*
* Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008 The Sakai Foundation
*
* Licensed under the Educational Community License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.opensource.org/licenses/ECL-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**********************************************************************************/
package org.sakaiproject.util;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.sakaiproject.exception.IdUnusedException;
import org.sakaiproject.site.api.Site;
import org.sakaiproject.site.cover.SiteService;
/**
* Collects common functionality between MergedListEntry providers.
*/
public abstract class MergedListEntryProviderBase implements MergedList.EntryProvider
{
/* (non-Javadoc)
* @see org.sakaiproject.util.MergedList.EntryProvider#isUserChannel(java.lang.Object)
*/
public boolean isUserChannel(Object channel)
{
String context = getContext(channel);
return (context == null ? false : SiteService.isUserSite(context));
}
/* (non-Javadoc)
* @see org.sakaiproject.util.MergedList.EntryProvider#isSpecialSite(java.lang.Object)
*/
public boolean isSpecialSite(Object channel)
{
String context = getContext(channel);
return (context == null ? true : SiteService.isSpecialSite(context));
}
/* (non-Javadoc)
* @see org.sakaiproject.util.MergedList.EntryProvider#getSiteUserId(java.lang.Object)
*/
public String getSiteUserId(Object channel)
{
String context = getContext(channel);
return (context == null ? "" : SiteService.getSiteUserId(context));
}
/* (non-Javadoc)
* @see org.sakaiproject.util.MergedList.EntryProvider#getSite(java.lang.Object)
*/
public Site getSite(Object channel)
{
try
{
String context = getContext(channel);
return (context == null ? null : SiteService.getSite(context));
}
catch (IdUnusedException e)
{
return null;
}
}
/* (non-Javadoc)
* @see org.chefproject.actions.MergedEntryList.EntryProvider#getIterator()
*/
public Iterator getIterator()
{
List siteList = SiteService.getSites(org.sakaiproject.site.api.SiteService.SelectionType.ACCESS,
null, null, null, org.sakaiproject.site.api.SiteService.SortType.TITLE_ASC, null);
List objectList = new ArrayList();
Iterator it = siteList.iterator();
while ( it.hasNext() )
{
Site curSite = (Site)it.next();
if ( curSite != null )
{
Object object = makeObjectFromSiteId(curSite.getId());
if ( object != null )
{
objectList.add(object);
}
}
}
return objectList.iterator();
}
/**
* Make a channel/calendar/etc. in an generic way.
*/
public abstract Object makeObjectFromSiteId(String siteId);
}