--- /dev/null
+/*******************************************************************************
+ * Copyright © Igor Barma, Alexandre Desoubeaux, Christian Martel, Eric Brun, Mathieu Amblard, Gwenael Gevet, Pierre Guillot, 2012
+ *
+ * This file is part of the work and learning management system Pentila Nero.
+ *
+ * Pentila Nero is free software. You can redistribute it and/or modify since
+ * you respect the terms of either (at least one of the both license) :
+ * - under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ * - the CeCILL-C as published by CeCILL-C; either version 1 of the
+ * License, or any later version
+ * - the GNU Lesser General Public License as published by the
+ * Free Software Foundation, either version 3 of the license,
+ * or (at your option) any later version.
+ *
+ * There are special exceptions to the terms and conditions of the
+ * licenses as they are applied to this software. View the full text of
+ * the exception in file LICENSE-PROJECT.txt in the directory of this software
+ * distribution.
+ *
+ * Pentila Nero is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * Licenses for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * and the CeCILL-C and the GNU Lesser General Public License along with
+ * Pentila Nero. If not, see :
+ * <http://www.gnu.org/licenses/> and
+ * <http://www.cecill.info/licences.fr.html>.
+ ******************************************************************************/
+package com.pentila.entSavoie.messageBoards.service.impl;
+
+import java.util.Date;
+
+import com.liferay.portal.kernel.exception.PortalException;
+import com.liferay.portal.kernel.exception.SystemException;
+import com.pentila.entSavoie.messageBoards.NoSuchMBLastAccessException;
+import com.pentila.entSavoie.messageBoards.model.MBLastAccess;
+import com.pentila.entSavoie.messageBoards.service.base.MBLastAccessLocalServiceBaseImpl;
+
+
+public class MBLastAccessLocalServiceImpl extends MBLastAccessLocalServiceBaseImpl {
+
+ public MBLastAccess addMBLastAccess() throws PortalException, SystemException {
+ final long mbLastAccessId = counterLocalService.increment();
+ final MBLastAccess mbLastAccess = mbLastAccessPersistence.create(mbLastAccessId);
+ return mbLastAccess;
+ }
+
+ public MBLastAccess addThreadMBLastAccess(long userId, long threadId) throws SystemException, PortalException {
+ MBLastAccess mbLastAccess = this.addMBLastAccess();
+
+ mbLastAccess.setUserId(userId);
+ mbLastAccess.setThreadId(threadId);
+ mbLastAccess.setLastAccess(new Date());
+
+ mbLastAccessPersistence.update(mbLastAccess, false);
+
+ return mbLastAccess;
+ }
+
+ public MBLastAccess getThreadMBLastAccess(long userId, long threadId) throws NoSuchMBLastAccessException, SystemException {
+ return mbLastAccessPersistence.fetchByuserId_threadId(userId, threadId);
+ }
+
+ public MBLastAccess updateThreadMBLastAccess(long userId, long threadId) throws SystemException, PortalException {
+ MBLastAccess mbLastAccess = getThreadMBLastAccess(userId, threadId);
+ if(mbLastAccess != null) {
+ mbLastAccess.setLastAccess(new Date());
+ mbLastAccessPersistence.update(mbLastAccess, false);
+ } else {
+ mbLastAccess = addThreadMBLastAccess(userId, threadId);
+ }
+ return mbLastAccess;
+ }
+
+ public Date getThreadMBLastAccessDate(long userId, long threadId) throws NoSuchMBLastAccessException, SystemException {
+ MBLastAccess mbLastAccess = getThreadMBLastAccess(userId, threadId);
+ if(mbLastAccess != null) {
+ return mbLastAccess.getLastAccess();
+ } else {
+ return null;
+ }
+ }
+
+
+}