1   /**
2    * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
13   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
14   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
17   * SOFTWARE.
18   */
19  
20  package com.liferay.portlet.messageboards.service.impl;
21  
22  import com.liferay.portal.PortalException;
23  import com.liferay.portal.SystemException;
24  import com.liferay.portal.model.User;
25  import com.liferay.portlet.messageboards.model.MBMessage;
26  import com.liferay.portlet.messageboards.model.MBMessageFlag;
27  import com.liferay.portlet.messageboards.model.impl.MBMessageFlagImpl;
28  import com.liferay.portlet.messageboards.service.base.MBMessageFlagLocalServiceBaseImpl;
29  
30  import java.util.List;
31  
32  /**
33   * <a href="MBMessageFlagLocalServiceImpl.java.html"><b><i>View Source</i></b>
34   * </a>
35   *
36   * @author Brian Wing Shun Chan
37   *
38   */
39  public class MBMessageFlagLocalServiceImpl
40      extends MBMessageFlagLocalServiceBaseImpl {
41  
42      public void addReadFlags(long userId, List<MBMessage> messages)
43          throws PortalException, SystemException {
44  
45          User user = userPersistence.findByPrimaryKey(userId);
46  
47          if (user.isDefaultUser()) {
48              return;
49          }
50  
51          for (MBMessage message : messages) {
52              MBMessageFlag messageFlag = mbMessageFlagPersistence.fetchByU_M(
53                  userId, message.getMessageId());
54  
55              if (messageFlag == null) {
56                  long messageFlagId = counterLocalService.increment();
57  
58                  messageFlag = mbMessageFlagPersistence.create(messageFlagId);
59  
60                  messageFlag.setUserId(userId);
61                  messageFlag.setMessageId(message.getMessageId());
62                  messageFlag.setFlag(MBMessageFlagImpl.READ_FLAG);
63  
64                  mbMessageFlagPersistence.update(messageFlag, false);
65              }
66          }
67      }
68  
69      public void deleteFlags(long userId) throws SystemException {
70          mbMessageFlagPersistence.removeByUserId(userId);
71      }
72  
73      public boolean hasReadFlag(long userId, long messageId)
74          throws PortalException, SystemException {
75  
76          User user = userPersistence.findByPrimaryKey(userId);
77  
78          if (user.isDefaultUser()) {
79              return true;
80          }
81  
82          MBMessageFlag messageFlag = mbMessageFlagPersistence.fetchByU_M(
83              userId, messageId);
84  
85          if (messageFlag != null) {
86              return true;
87          }
88          else {
89              return false;
90          }
91      }
92  
93  }