/********************************************************************************** * $URL: https://source.sakaiproject.org/svn/rwiki/trunk/rwiki-impl/impl/src/java/uk/ac/cam/caret/sakai/rwiki/component/message/MessageServiceImpl.java $ * $Id: MessageServiceImpl.java 9108 2006-05-08 14:30:57Z ian@caret.cam.ac.uk $ *********************************************************************************** * * Copyright (c) 2003, 2004, 2005, 2006 The Sakai Foundation. * * Licensed under the Educational Community License, Version 1.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/ecl1.php * * 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 uk.ac.cam.caret.sakai.rwiki.component.message; import java.util.Date; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import uk.ac.cam.caret.sakai.rwiki.service.message.api.MessageService; import uk.ac.cam.caret.sakai.rwiki.service.message.api.dao.MessageDao; import uk.ac.cam.caret.sakai.rwiki.service.message.api.dao.PagePresenceDao; import uk.ac.cam.caret.sakai.rwiki.service.message.api.model.Message; import uk.ac.cam.caret.sakai.rwiki.service.message.api.model.PagePresence; /** * @author ieb */ public class MessageServiceImpl implements MessageService { private static Log log = LogFactory.getLog(MessageServiceImpl.class); private MessageDao messageDao; private PagePresenceDao pagePresenceDao; /* * (non-Javadoc) * * @see uk.ac.cam.caret.sakai.rwiki.service.message.api.MessageService#updatePresence(java.lang.String, * java.lang.String, java.lang.String, java.lang.String) */ public void updatePresence(String session, String user, String page, String space) { PagePresence pp = pagePresenceDao.findBySession(session); if (pp != null) { pp.setUser(user); pp.setPagename(page); pp.setPagespace(space); pp.setLastseen(new Date()); pagePresenceDao.update(pp); } else { pp = pagePresenceDao.createPagePresence(page, space, session, user); pagePresenceDao.update(pp); } log.debug("Page Presence " + space + ":" + page + ":" + user + ":" + session); } /* * (non-Javadoc) * * @see uk.ac.cam.caret.sakai.rwiki.service.message.api.MessageService#addMessage(java.lang.String, * java.lang.String, java.lang.String, java.lang.String, * java.lang.String) */ public void addMessage(String session, String user, String page, String space, String message) { Message messageobj = messageDao.createMessage(space, page, session, user, message); messageDao.update(messageobj); } /* * (non-Javadoc) * * @see uk.ac.cam.caret.sakai.rwiki.service.message.api.MessageService#getSessionMessages(java.lang.String) */ public List getSessionMessages(String session) { return messageDao.findBySession(session); } /* * (non-Javadoc) * * @see uk.ac.cam.caret.sakai.rwiki.service.message.api.MessageService#getMessagesInSpace(java.lang.String) */ public List getMessagesInSpace(String space) { return messageDao.findBySpace(space); } /* * (non-Javadoc) * * @see uk.ac.cam.caret.sakai.rwiki.service.message.api.MessageService#getMessagesInPage(java.lang.String, * java.lang.String) */ public List getMessagesInPage(String space, String page) { return messageDao.findByPage(space, page); } /* * (non-Javadoc) * * @see uk.ac.cam.caret.sakai.rwiki.service.message.api.MessageService#getUsersInSpace(java.lang.String) */ public List getUsersInSpace(String space) { List l = pagePresenceDao.findBySpace(space); log.info("Found " + l.size() + " users in " + space); return l; } /* * (non-Javadoc) * * @see uk.ac.cam.caret.sakai.rwiki.service.message.api.MessageService#getUsersOnPage(java.lang.String, * java.lang.String) */ public List getUsersOnPage(String space, String page) { List l = pagePresenceDao.findByPage(space, page); log.info("Found " + l.size() + " users in " + space + " on " + page); return l; } /* * (non-Javadoc) * * @see uk.ac.cam.caret.sakai.rwiki.service.message.api.MessageService#getMessagesInSpaceOnly(java.lang.String, * java.lang.String) */ public List getUsersInSpaceOnly(String pageSpace, String pageName) { log .info("Searching for users in " + pageSpace + " but not " + pageName); return pagePresenceDao.findBySpaceOnly(pageSpace, pageName); } /** * @return Returns the messageDao. */ public MessageDao getMessageDao() { return messageDao; } /** * @param messageDao * The messageDao to set. */ public void setMessageDao(MessageDao messageDao) { this.messageDao = messageDao; } /** * @return Returns the pagePresenceDao. */ public PagePresenceDao getPagePresenceDao() { return pagePresenceDao; } /** * @param pagePresenceDao * The pagePresenceDao to set. */ public void setPagePresenceDao(PagePresenceDao pagePresenceDao) { this.pagePresenceDao = pagePresenceDao; } }