Package org.openmeetings.app.data.user.dao

Source Code of org.openmeetings.app.data.user.dao.PrivateMessageFolderDaoImpl

package org.openmeetings.app.data.user.dao;

import java.util.Date;
import java.util.List;

import javax.persistence.NoResultException;
import javax.persistence.Query;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import org.openmeetings.app.persistence.beans.user.PrivateMessageFolder;
import org.openmeetings.app.persistence.utils.PersistenceSessionUtil;
import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;

public class PrivateMessageFolderDaoImpl {
 
  private static final Logger log = Red5LoggerFactory.getLogger(PrivateMessageFolderDaoImpl.class, ScopeApplicationAdapter.webAppRootKey);

  private static PrivateMessageFolderDaoImpl instance = null;

  private PrivateMessageFolderDaoImpl() {
  }

  public static synchronized PrivateMessageFolderDaoImpl getInstance() {
    if (instance == null) {
      instance = new PrivateMessageFolderDaoImpl();
    }
    return instance;
  }
 
  public Long addPrivateMessageFolder(String folderName, Long userId) {
    try {
      PrivateMessageFolder privateMessageFolder = new PrivateMessageFolder();
      privateMessageFolder.setFolderName(folderName);
      privateMessageFolder.setUserId(userId);
      privateMessageFolder.setInserted(new Date());
     
      Object idf = PersistenceSessionUtil.createSession();
      EntityManager session = PersistenceSessionUtil.getSession();
      EntityTransaction tx = session.getTransaction();
      tx.begin();
     
      privateMessageFolder = session.merge(privateMessageFolder);
      Long privateMessageFolderId = privateMessageFolder.getPrivateMessageFolderId();
     
      tx.commit();
      PersistenceSessionUtil.closeSession(idf);
     
      return privateMessageFolderId; 
    } catch (Exception e) {
      log.error("[addPrivateMessageFolder]",e);
    }
    return null;
  }
 
  public Long addPrivateMessageFolderObj(PrivateMessageFolder privateMessageFolder) {
    try {
      privateMessageFolder.setInserted(new Date());
     
      Object idf = PersistenceSessionUtil.createSession();
      EntityManager session = PersistenceSessionUtil.getSession();
      EntityTransaction tx = session.getTransaction();
      tx.begin();
     
      privateMessageFolder = session.merge(privateMessageFolder);
      Long privateMessageFolderId = privateMessageFolder.getPrivateMessageFolderId();
     
      tx.commit();
      PersistenceSessionUtil.closeSession(idf);
     
      return privateMessageFolderId; 
    } catch (Exception e) {
      log.error("[addPrivateMessageFolder]",e);
    }
    return null;
  }
 
  public PrivateMessageFolder getPrivateMessageFolderById(Long privateMessageFolderId) {
    try {
      String hql = "select c from PrivateMessageFolder c " +
            "where c.privateMessageFolderId = :privateMessageFolderId ";

      Object idf = PersistenceSessionUtil.createSession();
      EntityManager session = PersistenceSessionUtil.getSession();
      EntityTransaction tx = session.getTransaction();
      tx.begin();
      Query query = session.createQuery(hql);
      query.setParameter("privateMessageFolderId", privateMessageFolderId);
     
      PrivateMessageFolder privateMessageFolder = null;
      try {
        privateMessageFolder = (PrivateMessageFolder) query.getSingleResult();
        } catch (NoResultException ex) {
        }
      tx.commit();
      PersistenceSessionUtil.closeSession(idf);
     
      return privateMessageFolder;
    } catch (Exception e) {
      log.error("[getPrivateMessageFolderById]",e);
    }
    return null;
  }

  public List<PrivateMessageFolder> getPrivateMessageFolders() {
    try {
      String hql = "select c from PrivateMessageFolder c ";

      Object idf = PersistenceSessionUtil.createSession();
      EntityManager session = PersistenceSessionUtil.getSession();
      EntityTransaction tx = session.getTransaction();
      tx.begin();
      Query query = session.createQuery(hql);
     
      List<PrivateMessageFolder> privateMessageFolders = query.getResultList();
      tx.commit();
      PersistenceSessionUtil.closeSession(idf);
     
      return privateMessageFolders;
    } catch (Exception e) {
      log.error("[getPrivateMessageFolderById]",e);
    }
    return null;
  }

  public void updatePrivateMessages(PrivateMessageFolder privateMessageFolder) {
    try {
     
      Object idf = PersistenceSessionUtil.createSession();
      EntityManager session = PersistenceSessionUtil.getSession();
      EntityTransaction tx = session.getTransaction();
      tx.begin();
     
      if (privateMessageFolder.getPrivateMessageFolderId() == 0) {
        session.persist(privateMessageFolder);
          } else {
            if (!session.contains(privateMessageFolder)) {
              session.merge(privateMessageFolder);
          }
      }
     
      tx.commit();
      PersistenceSessionUtil.closeSession(idf);
     
    } catch (Exception e) {
      log.error("[updatePrivateMessages]",e);
    }
  }
 
  public List<PrivateMessageFolder> getPrivateMessageFolderByUserId(Long userId) {
    try {
      String hql = "select c from PrivateMessageFolder c " +
            "where c.userId = :userId ";

      Object idf = PersistenceSessionUtil.createSession();
      EntityManager session = PersistenceSessionUtil.getSession();
      EntityTransaction tx = session.getTransaction();
      tx.begin();
      Query query = session.createQuery(hql);
      query.setParameter("userId", userId);
     
      List<PrivateMessageFolder> privateMessageFolders = query.getResultList();
      tx.commit();
      PersistenceSessionUtil.closeSession(idf);
     
      return privateMessageFolders;
    } catch (Exception e) {
      log.error("[getPrivateMessageFolderByUserId]",e);
    }
    return null;
  }

  public void deletePrivateMessages(PrivateMessageFolder privateMessageFolder) {
    try {
     
      Object idf = PersistenceSessionUtil.createSession();
      EntityManager session = PersistenceSessionUtil.getSession();
      EntityTransaction tx = session.getTransaction();
      tx.begin();
 
      privateMessageFolder = session.find(PrivateMessageFolder.class, privateMessageFolder.getPrivateMessageFolderId());
      session.remove(privateMessageFolder);
     
      tx.commit();
      PersistenceSessionUtil.closeSession(idf);
     
    } catch (Exception e) {
      log.error("[deletePrivateMessages]",e);
    }
  } 
 
}
TOP

Related Classes of org.openmeetings.app.data.user.dao.PrivateMessageFolderDaoImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.