Package it.eng.spagobi.commons.dao

Source Code of it.eng.spagobi.commons.dao.RoleDAOHibImpl

/**

SpagoBI - The Business Intelligence Free Platform

Copyright (C) 2005-2008 Engineering Ingegneria Informatica S.p.A.

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library 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 GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

**/
/*
* Created on 22-giu-2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package it.eng.spagobi.commons.dao;


import it.eng.spago.error.EMFErrorSeverity;
import it.eng.spago.error.EMFUserError;
import it.eng.spagobi.behaviouralmodel.analyticaldriver.metadata.SbiParuse;
import it.eng.spagobi.behaviouralmodel.analyticaldriver.metadata.SbiParuseDet;
import it.eng.spagobi.commons.bo.Role;
import it.eng.spagobi.commons.metadata.SbiDomains;
import it.eng.spagobi.commons.metadata.SbiEventRole;
import it.eng.spagobi.commons.metadata.SbiExtRoles;
import it.eng.spagobi.events.metadata.SbiEventsLog;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Expression;
import org.hibernate.criterion.Order;

/**
* Defines the Hibernate implementations for all DAO methods,
* for a Role.
*
* @author zoppello
*/
public class RoleDAOHibImpl extends AbstractHibernateDAO implements IRoleDAO {

  private static transient Logger logger = Logger.getLogger(RoleDAOHibImpl.class);
  /**
   * Load by id.
   *
   * @param roleID the role id
   *
   * @return the role
   *
   * @throws EMFUserError the EMF user error
   *
   * @see it.eng.spagobi.commons.dao.IRoleDAO#loadByID(java.lang.Integer)
   */
  public Role loadByID(Integer roleID) throws EMFUserError {
    Role toReturn = null;
    Session aSession = null;
    Transaction tx = null;
    try{
      aSession = getSession();
      tx = aSession.beginTransaction();
   
      SbiExtRoles hibRole = (SbiExtRoles)aSession.load(SbiExtRoles.class,  roleID);
     
      toReturn = toRole(hibRole);
      tx.commit();
    }catch(HibernateException he){
      logException(he);
     
      if (tx != null) tx.rollback()

      throw new EMFUserError(EMFErrorSeverity.ERROR, 100)
   
    }finally{
      if (aSession!=null){
        if (aSession.isOpen()) aSession.close();
      }
    }
    return toReturn;
  }

  /**
   * Load by name.
   *
   * @param roleName the role name
   *
   * @return the role
   *
   * @throws EMFUserError the EMF user error
   *
   * @see it.eng.spagobi.commons.dao.IRoleDAO#loadByName(java.lang.String)
   */
  public Role loadByName(String roleName) throws EMFUserError {
    Role toReturn = null;
    Session aSession = null;
    Transaction tx = null;
    try{
      aSession = getSession();
      tx = aSession.beginTransaction();
     
      Criterion aCriterion = Expression.eq("name", roleName);
      Criteria aCriteria = aSession.createCriteria(SbiExtRoles.class);
     
      aCriteria.add(aCriterion);
     
      SbiExtRoles hibRole = (SbiExtRoles)aCriteria.uniqueResult();
      if (hibRole == null) return null;
     
      toReturn = toRole(hibRole);
      tx.commit();
    }catch(HibernateException he){
      logException(he);
     
      if (tx != null) tx.rollback()

      throw new EMFUserError(EMFErrorSeverity.ERROR, 100)
   
    }finally{
      if (aSession!=null){
        if (aSession.isOpen()) aSession.close();
      }
    }
    return toReturn;
  }

  /**
   * Load all roles.
   *
   * @return the list
   *
   * @throws EMFUserError the EMF user error
   *
   * @see it.eng.spagobi.commons.dao.IRoleDAO#loadAllRoles()
   */
  public List loadAllRoles() throws EMFUserError {
    List realResult = new ArrayList();
    Session aSession = null;
    Transaction tx = null;
    try {
      aSession = getSession();
      tx = aSession.beginTransaction();
      Criteria finder = aSession.createCriteria(SbiExtRoles.class);
      finder.addOrder(Order.asc("name"));
      List hibList = finder.list();

      tx.commit();

      Iterator it = hibList.iterator();

      while (it.hasNext()) {
        realResult.add(toRole((SbiExtRoles) it.next()));
      }
    } catch (HibernateException he) {
      logException(he);

      if (tx != null)
        tx.rollback();

      throw new EMFUserError(EMFErrorSeverity.ERROR, 100);

    } finally {
      if (aSession!=null){
        if (aSession.isOpen()) aSession.close();
      }
    }
    return realResult;
  }

  /**
   * Insert role.
   *
   * @param aRole the a role
   *
   * @throws EMFUserError the EMF user error
   *
   * @see it.eng.spagobi.commons.dao.IRoleDAO#insertRole(it.eng.spagobi.commons.bo.Role)
   */
  public void insertRole(Role aRole) throws EMFUserError {
    Session aSession = null;
    Transaction tx = null;
    try {
      aSession = getSession();
      tx = aSession.beginTransaction();

   
      SbiExtRoles hibRole = new SbiExtRoles();
     
      hibRole.setCode(aRole.getCode());
      hibRole.setDescr(aRole.getDescription());
     
     
      hibRole.setName(aRole.getName());
     
      SbiDomains roleType = (SbiDomains)aSession.load(SbiDomains.class,  aRole.getRoleTypeID());
      hibRole.setRoleType(roleType);
     
      hibRole.setRoleTypeCode(aRole.getRoleTypeCD());
      updateSbiCommonInfo4Insert(hibRole);
      aSession.save(hibRole);
     
      tx.commit();
    } catch (HibernateException he) {
      logException(he);

      if (tx != null)
        tx.rollback();

      throw new EMFUserError(EMFErrorSeverity.ERROR, 100);

    } finally {
      if (aSession!=null){
        if (aSession.isOpen()) aSession.close();
      }
    }
   
   
  }

  /**
   * Erase role.
   *
   * @param aRole the a role
   *
   * @throws EMFUserError the EMF user error
   *
   * @see it.eng.spagobi.commons.dao.IRoleDAO#eraseRole(it.eng.spagobi.commons.bo.Role)
   */
  public void eraseRole(Role aRole) throws EMFUserError {
    Session aSession = null;
    Transaction tx = null;
    try {
      aSession = getSession();
      tx = aSession.beginTransaction();
   
      SbiExtRoles hibRole = (SbiExtRoles) aSession.load(SbiExtRoles.class,  aRole.getId());
      // deletes associations with events (and events themselves, if they have no more associations)
      //Query hibQuery = aSession.createQuery(" from SbiEventRole ser where ser.id.role.extRoleId = " + hibRole.getExtRoleId().toString());
      Query hibQuery = aSession.createQuery(" from SbiEventRole ser where ser.id.role.extRoleId = ?" );
      hibQuery.setInteger(0, hibRole.getExtRoleId().intValue());
      List eventsRole = hibQuery.list();
      Iterator it = eventsRole.iterator();
      while (it.hasNext()) {
        SbiEventRole eventRole = (SbiEventRole) it.next();
        SbiEventsLog event = eventRole.getId().getEvent();
        aSession.delete(eventRole);
        aSession.flush();
        aSession.refresh(event);
        Set roles = event.getRoles();
        if (roles.isEmpty()) {
          aSession.delete(event);
        }
      }
      aSession.delete(hibRole);
      tx.commit();
    } catch (HibernateException he) {
      logException(he);

      if (tx != null)
        tx.rollback();

      throw new EMFUserError(EMFErrorSeverity.ERROR, 100);

    } finally {
      if (aSession!=null){
        if (aSession.isOpen()) aSession.close();
      }
    }

  }

  /**
   * Modify role.
   *
   * @param aRole the a role
   *
   * @throws EMFUserError the EMF user error
   *
   * @see it.eng.spagobi.commons.dao.IRoleDAO#modifyRole(it.eng.spagobi.commons.bo.Role)
   */
  public void modifyRole(Role aRole) throws EMFUserError {
    Session aSession = null;
    Transaction tx = null;
    try {
      aSession = getSession();
      tx = aSession.beginTransaction();
   
      SbiExtRoles hibRole = (SbiExtRoles)aSession.load(SbiExtRoles.class,  aRole.getId());
     
      hibRole.setCode(aRole.getCode());
      hibRole.setDescr(aRole.getDescription());
      hibRole.setName(aRole.getName());
      hibRole.setIsAbleToSaveSubobjects(new Boolean(aRole.isAbleToSaveSubobjects()));
      hibRole.setIsAbleToSeeSubobjects(new Boolean(aRole.isAbleToSeeSubobjects()));
      hibRole.setIsAbleToSeeSnapshots(new Boolean(aRole.isAbleToSeeSnapshots()));
      hibRole.setIsAbleToSeeViewpoints(new Boolean(aRole.isAbleToSeeViewpoints()));
      hibRole.setIsAbleToSeeNotes(new Boolean(aRole.isAbleToSeeNotes()));
      hibRole.setIsAbleToSeeMetadata(new Boolean(aRole.isAbleToSeeMetadata()));
      hibRole.setIsAbleToSaveMetadata(new Boolean(aRole.isAbleToSaveMetadata()));
      hibRole.setIsAbleToSendMail(new Boolean(aRole.isAbleToSendMail()));
      hibRole.setIsAbleToSaveRememberMe(new Boolean(aRole.isAbleToSaveRememberMe()));
      hibRole.setIsAbleToSaveIntoPersonalFolder(new Boolean(aRole.isAbleToSaveIntoPersonalFolder()));
      hibRole.setIsAbleToBuildQbeQuery(new Boolean(aRole.isAbleToBuildQbeQuery()));
     
      SbiDomains roleType = (SbiDomains)aSession.load(SbiDomains.class,  aRole.getRoleTypeID());
      hibRole.setRoleType(roleType);
     
      hibRole.setRoleTypeCode(aRole.getRoleTypeCD());
      updateSbiCommonInfo4Update(hibRole);
      tx.commit();
    } catch (HibernateException he) {
      logException(he);

      if (tx != null)
        tx.rollback();

      throw new EMFUserError(EMFErrorSeverity.ERROR, 100);

    } finally {
      if (aSession!=null){
        if (aSession.isOpen()) aSession.close();
      }
    }

  }

  /**
   * Load all free roles for insert.
   *
   * @param parameterID the parameter id
   *
   * @return the list
   *
   * @throws EMFUserError the EMF user error
   *
   * @see it.eng.spagobi.commons.dao.IRoleDAO#loadAllFreeRolesForInsert(java.lang.Integer)
   */
  public List loadAllFreeRolesForInsert(Integer parameterID)
      throws EMFUserError {
    List realResult = new ArrayList();
    Session aSession = null;
    Transaction tx = null;
    try {
      aSession = getSession();
      tx = aSession.beginTransaction();

      Query hibQuery = aSession.createQuery(" from SbiExtRoles ");
      List hibListAllRoles = hibQuery.list();

      /*String hql = "from SbiParuseDet s "
          + " where s.id.sbiParuse.sbiParameters.parId = "
          + parameterID;*/
     
      String hql = "from SbiParuseDet s "
        + " where s.id.sbiParuse.sbiParameters.parId = ?"
        ;

      Query hqlQuery = aSession.createQuery(hql);
      hqlQuery.setInteger(0, parameterID.intValue());
     
      List parUseDetsOfNoFreeRoles = hqlQuery.list();

      List noFreeRoles = new ArrayList();

      for (Iterator it = parUseDetsOfNoFreeRoles.iterator(); it.hasNext();) {
        noFreeRoles.add(((SbiParuseDet) it.next()).getId()
            .getSbiExtRoles());
      }

      hibListAllRoles.removeAll(noFreeRoles);

      Iterator it = hibListAllRoles.iterator();

      while (it.hasNext()) {
        realResult.add(toRole((SbiExtRoles) it.next()));
      }

      tx.commit();
    } catch (HibernateException he) {
      logException(he);

      if (tx != null)
        tx.rollback();

      throw new EMFUserError(EMFErrorSeverity.ERROR, 100);

    } finally {
      if (aSession!=null){
        if (aSession.isOpen()) aSession.close();
      }
    }
    return realResult;
  }

  /**
   * Load all free roles for detail.
   *
   * @param parUseID the par use id
   *
   * @return the list
   *
   * @throws EMFUserError the EMF user error
   *
   * @see it.eng.spagobi.commons.dao.IRoleDAO#loadAllFreeRolesForDetail(java.lang.Integer)
   */
  public List loadAllFreeRolesForDetail(Integer parUseID) throws EMFUserError {
    List realResult = new ArrayList();
    Session aSession = null;
    Transaction tx = null;
    try {
      aSession = getSession();
      tx = aSession.beginTransaction();
     
      Query hibQuery = aSession.createQuery(" from SbiExtRoles ");
      List hibListAllRoles = hibQuery.list();
     
     
      SbiParuse sbiParuse = (SbiParuse)aSession.load(SbiParuse.class, parUseID);
     
      Set setParUsesDets = sbiParuse.getSbiParuseDets();
      for (Iterator it = setParUsesDets.iterator(); it.hasNext();){
        SbiParuseDet det = (SbiParuseDet)it.next();
      }
     
      /*String hql = "from SbiParuseDet s "
            +" where s.id.sbiParuse.sbiParameters.parId = "+ sbiParuse.getSbiParameters().getParId()
            +" and s.id.sbiParuse.label != '" + sbiParuse.getLabel()+ "'";*/
     
      String hql = "from SbiParuseDet s "
        +" where s.id.sbiParuse.sbiParameters.parId = ? "
        +" and s.id.sbiParuse.label != ? ";
     
     
      Query hqlQuery = aSession.createQuery(hql);
      hqlQuery.setInteger(0, sbiParuse.getSbiParameters().getParId().intValue());
      hqlQuery.setString(1, sbiParuse.getLabel());
     
      List parUseDetsOfNoFreeRoles = hqlQuery.list();
     
      List noFreeRoles = new ArrayList();
     
      for (Iterator it = parUseDetsOfNoFreeRoles.iterator(); it.hasNext();){
        noFreeRoles.add(((SbiParuseDet)it.next()).getId().getSbiExtRoles());
      }
     
      hibListAllRoles.removeAll(noFreeRoles);
     
     
      Iterator it = hibListAllRoles.iterator();
     
      while (it.hasNext()){
        realResult.add(toRole((SbiExtRoles)it.next()));
      }
     
      tx.commit();
    } catch (HibernateException he) {
      logException(he);

      if (tx != null)
        tx.rollback();

      throw new EMFUserError(EMFErrorSeverity.ERROR, 100);

    } finally {
      if (aSession!=null){
        if (aSession.isOpen()) aSession.close();
      }
    }
    return realResult;
  }
 
  /**
   * From the hibernate Role at input, gives
   * the corrispondent <code>Role</code> object.
   *
   * @param hibRole The hybernate role
   *
   * @return The corrispondent <code>Role</code> object
   */
  public Role toRole(SbiExtRoles hibRole){
      logger.debug( "IN.hibRole.getName()="+hibRole.getName() );
    Role role = new Role();
    role.setCode(hibRole.getCode());
    role.setDescription(hibRole.getDescr());
    role.setId(hibRole.getExtRoleId());
    role.setName(hibRole.getName());
    role.setIsAbleToSaveSubobjects(hibRole.getIsAbleToSaveSubobjects() == null || hibRole.getIsAbleToSaveSubobjects().booleanValue());
    role.setIsAbleToSeeSubobjects(hibRole.getIsAbleToSeeSubobjects() == null || hibRole.getIsAbleToSeeSubobjects().booleanValue());
    role.setIsAbleToSeeSnapshots(hibRole.getIsAbleToSeeSnapshots() == null || hibRole.getIsAbleToSeeSnapshots().booleanValue());
    role.setIsAbleToSeeViewpoints(hibRole.getIsAbleToSeeViewpoints() == null || hibRole.getIsAbleToSeeViewpoints().booleanValue());
    role.setIsAbleToSeeNotes(hibRole.getIsAbleToSeeNotes() == null || hibRole.getIsAbleToSeeNotes().booleanValue());
    role.setIsAbleToSeeMetadata(hibRole.getIsAbleToSeeMetadata() == null || hibRole.getIsAbleToSeeMetadata().booleanValue());
    role.setIsAbleToSaveMetadata(hibRole.getIsAbleToSaveMetadata() == null || hibRole.getIsAbleToSaveMetadata().booleanValue());
    role.setIsAbleToSendMail(hibRole.getIsAbleToSendMail() == null || hibRole.getIsAbleToSendMail().booleanValue());
    role.setIsAbleToSaveRememberMe(hibRole.getIsAbleToSaveRememberMe() == null || hibRole.getIsAbleToSaveRememberMe().booleanValue());
    role.setIsAbleToSaveIntoPersonalFolder(hibRole.getIsAbleToSaveIntoPersonalFolder() == null || hibRole.getIsAbleToSaveIntoPersonalFolder().booleanValue());
    role.setIsAbleToBuildQbeQuery(hibRole.getIsAbleToBuildQbeQuery() == null || hibRole.getIsAbleToBuildQbeQuery().booleanValue());
    role.setRoleTypeCD(hibRole.getRoleTypeCode());
    role.setRoleTypeID(hibRole.getRoleType().getValueId());
    logger.debug( "OUT" );
    return role;
  }

 
 
  /**
   * Gets all the functionalities associated to the role.
   *
   * @param roleID The role id
   *
   * @return The functionalities associated to the role
   *
   * @throws EMFUserError the EMF user error
   */
  public List LoadFunctionalitiesAssociated(Integer roleID) throws EMFUserError {
    List functs = new ArrayList();
    Session aSession = null;
    Transaction tx = null;
    try {
      aSession = getSession();
      tx = aSession.beginTransaction();
      /*String hql = "select f from SbiFunctions f, SbiFuncRole fr, SbiExtRoles r "
            +" where f.functId = fr.id.function.functId "
            +" and r.extRoleId = fr.id.role.extRoleId "
            +" and r.extRoleId = " + roleID; */
     
      String hql = "select f from SbiFunctions f, SbiFuncRole fr, SbiExtRoles r "
        +" where f.functId = fr.id.function.functId "
        +" and r.extRoleId = fr.id.role.extRoleId "
        +" and r.extRoleId = ?";
     
      Query hqlQuery = aSession.createQuery(hql);
      hqlQuery.setInteger(0, roleID.intValue());
      functs = hqlQuery.list();
      tx.commit();
    } catch (HibernateException he) {
      logException(he);
      if (tx != null)
        tx.rollback();
      throw new EMFUserError(EMFErrorSeverity.ERROR, 100);
    } finally {
      if (aSession!=null){
        if (aSession.isOpen()) aSession.close();
      }
    }
    return functs;
  }
 
 
 
  /**
   * Gets all the parameter uses associated to the role.
   *
   * @param roleID The role id
   *
   * @return The parameter uses associated to the role
   *
   * @throws EMFUserError the EMF user error
   */
  public List LoadParUsesAssociated(Integer roleID) throws EMFUserError {
    List uses = new ArrayList();
    Session aSession = null;
    Transaction tx = null;
    try {
      aSession = getSession();
      tx = aSession.beginTransaction();
      /*String hql = "select pu from SbiParuseDet pud, SbiParuse pu, SbiExtRoles r "
            +" where pu.useId = pud.id.sbiParuse.useId "
            +" and r.extRoleId = pud.id.sbiExtRoles.extRoleId "
            +" and r.extRoleId = " + roleID; */
     
      String hql = "select pu from SbiParuseDet pud, SbiParuse pu, SbiExtRoles r "
        +" where pu.useId = pud.id.sbiParuse.useId "
        +" and r.extRoleId = pud.id.sbiExtRoles.extRoleId "
        +" and r.extRoleId = ?";
     
      Query hqlQuery = aSession.createQuery(hql);
      hqlQuery.setInteger(0, roleID.intValue());
      uses = hqlQuery.list();
      tx.commit();
    } catch (HibernateException he) {
      logException(he);
      if (tx != null)
        tx.rollback();
      throw new EMFUserError(EMFErrorSeverity.ERROR, 100);
    } finally {
      if (aSession!=null){
        if (aSession.isOpen()) aSession.close();
      }
    }
    return uses;
  }

  public Integer insertRoleComplete(Role role) throws EMFUserError {
    Session aSession = null;
    Transaction tx = null;
    Integer roleId = null;
    try {
      aSession = getSession();
      tx = aSession.beginTransaction();

   
      SbiExtRoles hibRole = new SbiExtRoles();
     
      hibRole.setCode(role.getCode());
      hibRole.setDescr(role.getDescription());
      hibRole.setName(role.getName());     
      SbiDomains roleType = (SbiDomains)aSession.load(SbiDomains.class,  role.getRoleTypeID());
      hibRole.setRoleType(roleType);
     
      hibRole.setRoleTypeCode(role.getRoleTypeCD());
      //abilitations
      hibRole.setIsAbleToSaveSubobjects(new Boolean(role.isAbleToSaveSubobjects()));
      hibRole.setIsAbleToSeeSubobjects(new Boolean(role.isAbleToSeeSubobjects()));
      hibRole.setIsAbleToSeeSnapshots(new Boolean(role.isAbleToSeeSnapshots()));
      hibRole.setIsAbleToSeeViewpoints(new Boolean(role.isAbleToSeeViewpoints()));
      hibRole.setIsAbleToSeeNotes(new Boolean(role.isAbleToSeeNotes()));
      hibRole.setIsAbleToSeeMetadata(new Boolean(role.isAbleToSeeMetadata()));
      hibRole.setIsAbleToSaveMetadata(new Boolean(role.isAbleToSaveMetadata()));
      hibRole.setIsAbleToSendMail(new Boolean(role.isAbleToSendMail()));
      hibRole.setIsAbleToSaveRememberMe(new Boolean(role.isAbleToSaveRememberMe()));
      hibRole.setIsAbleToSaveIntoPersonalFolder(new Boolean(role.isAbleToSaveIntoPersonalFolder()));
      hibRole.setIsAbleToBuildQbeQuery(new Boolean(role.isAbleToBuildQbeQuery()));
      updateSbiCommonInfo4Insert(hibRole);
      roleId = (Integer)aSession.save(hibRole);
     
      tx.commit();
     
    } catch (HibernateException he) {
      logException(he);

      if (tx != null)
        tx.rollback();

      throw new EMFUserError(EMFErrorSeverity.ERROR, 100);

    } finally {     
      if (aSession!=null){
        if (aSession.isOpen()) aSession.close();
      }
      return roleId;
    }
   
  }

  public Integer countRoles() throws EMFUserError {
    logger.debug("IN");
    Session aSession = null;
    Transaction tx = null;
    Integer resultNumber;
   
    try {
      aSession = getSession();
      tx = aSession.beginTransaction();
   
      String hql = "select count(*) from SbiExtRoles ";
      Query hqlQuery = aSession.createQuery(hql);
      Long temp = (Long)hqlQuery.uniqueResult();
      resultNumber = new Integer(temp.intValue());

    } catch (HibernateException he) {
      logger.error("Error while loading the list of SbiExtRoles", he)
      if (tx != null)
        tx.rollback()
      throw new EMFUserError(EMFErrorSeverity.ERROR, 9104);
   
    } finally {
      if (aSession != null) {
        if (aSession.isOpen())
          aSession.close();
        logger.debug("OUT");
      }
    }
    return resultNumber;
  }

  public List<Role> loadPagedRolesList(Integer offset, Integer fetchSize)
      throws EMFUserError {
    logger.debug("IN");
    List<Role> toReturn = null;
    Session aSession = null;
    Transaction tx = null;
    Integer resultNumber;
    Query hibernateQuery;
   
    try {
      aSession = getSession();
      tx = aSession.beginTransaction();
      toReturn = new ArrayList();
      List toTransform = null;
   
      String hql = "select count(*) from SbiExtRoles ";
      Query hqlQuery = aSession.createQuery(hql);
      Long temp = (Long)hqlQuery.uniqueResult();
      resultNumber = new Integer(temp.intValue());
     
      offset = offset < 0 ? 0 : offset;
      if(resultNumber > 0) {
        fetchSize = (fetchSize > 0)? Math.min(fetchSize, resultNumber): resultNumber;
      }
     
      hibernateQuery = aSession.createQuery("from SbiExtRoles order by name");
      hibernateQuery.setFirstResult(offset);
      if(fetchSize > 0) hibernateQuery.setMaxResults(fetchSize);     

      toTransform = hibernateQuery.list();       
   
      if(toTransform != null){
        for (Iterator iterator = toTransform.iterator(); iterator.hasNext();) {
          SbiExtRoles hibRole = (SbiExtRoles) iterator.next();
          Role role = toRole(hibRole);
          toReturn.add(role);
        }
      } 
     
    } catch (HibernateException he) {
      logger.error("Error while loading the list of SbiExtRoles", he)
      if (tx != null)
        tx.rollback()
      throw new EMFUserError(EMFErrorSeverity.ERROR, 9104);
   
    } finally {
      if (aSession != null) {
        if (aSession.isOpen())
          aSession.close();
        logger.debug("OUT");
      }
    }
    return toReturn;
  }
 
 
 
}
TOP

Related Classes of it.eng.spagobi.commons.dao.RoleDAOHibImpl

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.