Example usage for org.hibernate.criterion DetachedCriteria add

List of usage examples for org.hibernate.criterion DetachedCriteria add

Introduction

In this page you can find the example usage for org.hibernate.criterion DetachedCriteria add.

Prototype

public DetachedCriteria add(Criterion criterion) 

Source Link

Document

Add a restriction

Usage

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchInstanceDaoImpl.java

License:Open Source License

/**
 * An API to fetch count of the batch instance table for batch instance filters.
 * /*  ww w  .  j av  a2  s .  co m*/
 * @param filterClauseList List<BatchInstanceFilter>
 * @return count of the batch instance present for the batch instance filters.
 */
@Override
public int getCount(final List<BatchInstanceFilter> filterClauseList) {
    int count = -1;
    DetachedCriteria criteria = criteria();
    if (null != filterClauseList) {
        for (BatchInstanceFilter batchInstanceFilter : filterClauseList) {
            criteria.add(Restrictions.eq(batchInstanceFilter.getNameProperty().getProperty(),
                    batchInstanceFilter.getValueProperty()));
        }
        count = count(criteria);
    }
    return count;
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchInstanceDaoImpl.java

License:Open Source License

/**
 * An API to fetch count of the batch instances for a given status list and batch priority and isCurrUsrNotReq is used for adding
 * the batch instance access by the current user. This API will return the batch instance having access by the user roles on the
 * basis of ephesoft user.//from   ww  w. j av a2  s .c o m
 * 
 * @param batchInstStatusList List<{@link BatchInstanceStatus}>
 * @param batchPriorities the priority list of the batches
 * @param isNotCurrentUserCheckReq true if the current user can be anyone. False if current user cannot be null.
 * @param currentUserName {@link String}
 * @param userRoles Set<{@link String}>
 * @param ephesoftUser {@link EphesoftUser}
 * @param searchString the searchString on which batch instances have to be fetched
 * @return int, the count satisfying the above requirements
 */
@Override
public int getCount(final List<BatchInstanceStatus> batchInstStatusList,
        final List<BatchPriority> batchPriorities, final boolean isNotCurrentUserCheckReq,
        final Set<String> userRoles, final String currentUserName, EphesoftUser ephesoftUser,
        final String searchString) {
    DetachedCriteria criteria = criteria();

    if (null != batchInstStatusList) {
        criteria.add(Restrictions.in(STATUS, batchInstStatusList));
    }

    if (null != searchString && !searchString.isEmpty()) {
        String searchStringLocal = searchString.replaceAll(DataAccessConstant.PERCENTAGE, REPLACEMENT_STRING);
        Criterion nameLikeCriteria = Restrictions.like(BATCH_NAME,
                DataAccessConstant.PERCENTAGE + searchStringLocal + DataAccessConstant.PERCENTAGE);
        Criterion idLikeCriteria = Restrictions.like(BATCH_INSTANCE_IDENTIFIER,
                DataAccessConstant.PERCENTAGE + searchStringLocal + DataAccessConstant.PERCENTAGE);

        LogicalExpression searchCriteria = Restrictions.or(nameLikeCriteria, idLikeCriteria);
        criteria.add(searchCriteria);
    }

    if (null != batchPriorities && !(batchPriorities.isEmpty())) {
        Disjunction disjunction = Restrictions.disjunction();
        for (BatchPriority batchPriority : batchPriorities) {
            if (null != batchPriority) {
                Integer lowValue = batchPriority.getLowerLimit();
                Integer upperValue = batchPriority.getUpperLimit();
                disjunction.add(Restrictions.between(PRIORITY, lowValue, upperValue));
            } else {
                disjunction = Restrictions.disjunction();
                break;
            }
        }
        criteria.add(disjunction);
    }
    int count = 0;

    Set<String> batchClassIdentifiers = null;
    Set<String> batchInstanceIdentifiers = null;

    if (ephesoftUser.equals(EphesoftUser.ADMIN_USER)) {
        batchClassIdentifiers = batchClassGroupsDao.getBatchClassIdentifierForUserRoles(userRoles);
        batchInstanceIdentifiers = batchInstanceGroupsDao.getBatchInstanceIdentifierForUserRoles(userRoles);
        if ((null != batchClassIdentifiers && batchClassIdentifiers.size() > 0)
                || (null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0)) {
            if (null != batchClassIdentifiers && batchClassIdentifiers.size() > 0
                    && null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0) {
                final Disjunction disjunction = Restrictions.disjunction();
                if (null != batchClassIdentifiers && batchClassIdentifiers.size() > 0) {
                    criteria.createAlias(BATCH_CLASS, BATCH_CLASS);
                    disjunction.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers));
                }
                if (null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0) {
                    disjunction.add(Restrictions.in(BATCH_INSTANCE_IDENTIFIER, batchInstanceIdentifiers));
                }
                criteria.add(disjunction);
            } else if (null != batchClassIdentifiers && batchClassIdentifiers.size() > 0) {
                criteria.createAlias(BATCH_CLASS, BATCH_CLASS);
                criteria.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers));
            } else if (null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0) {
                criteria.add(Restrictions.in(BATCH_INSTANCE_IDENTIFIER, batchInstanceIdentifiers));
            }
            // Add check for null current users only.
            // Now we will count only for those current users those are null.
            if (!isNotCurrentUserCheckReq && null != currentUserName) {
                criteria.add(Restrictions.or(Restrictions.isNull(CURRENT_USER),
                        Restrictions.eq(CURRENT_USER, currentUserName)));
            }
            count = count(criteria);
        }
    } else {
        batchClassIdentifiers = batchClassGroupsDao.getBatchClassIdentifierForUserRoles(userRoles);
        batchInstanceIdentifiers = batchInstanceGroupsDao.getBatchInstanceIdentifierForUserRoles(userRoles);

        if ((null != batchClassIdentifiers && batchClassIdentifiers.size() > 0)
                || (null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0)) {
            Set<String> batchInstanceIdentifierSet = batchInstanceGroupsDao
                    .getBatchInstanceIdentifiersExceptUserRoles(userRoles);
            if (null != batchClassIdentifiers && batchClassIdentifiers.size() > 0
                    && null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0
                    && null != batchInstanceIdentifierSet && batchInstanceIdentifierSet.size() > 0) {
                final Conjunction conjunction = Restrictions.conjunction();
                final Disjunction disjunction = Restrictions.disjunction();
                criteria.createAlias(BATCH_CLASS, BATCH_CLASS);
                disjunction.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers));
                disjunction.add(Restrictions.in(BATCH_INSTANCE_IDENTIFIER, batchInstanceIdentifiers));
                conjunction.add(Restrictions
                        .not(Restrictions.in(BATCH_INSTANCE_IDENTIFIER, batchInstanceIdentifierSet)));
                conjunction.add(disjunction);
                criteria.add(conjunction);
            } else if (null != batchClassIdentifiers && batchClassIdentifiers.size() > 0
                    && null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0) {
                final Disjunction disjunction = Restrictions.disjunction();
                criteria.createAlias(BATCH_CLASS, BATCH_CLASS);
                disjunction.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers));
                disjunction.add(Restrictions.in(BATCH_INSTANCE_IDENTIFIER, batchInstanceIdentifiers));
                criteria.add(disjunction);
            } else if (null != batchClassIdentifiers && batchClassIdentifiers.size() > 0
                    && null != batchInstanceIdentifierSet && batchInstanceIdentifierSet.size() > 0) {
                final Conjunction conjunction = Restrictions.conjunction();
                criteria.createAlias(BATCH_CLASS, BATCH_CLASS);
                conjunction.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers));
                conjunction.add(Restrictions
                        .not(Restrictions.in(BATCH_INSTANCE_IDENTIFIER, batchInstanceIdentifierSet)));
                criteria.add(conjunction);
            } else if (null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0
                    && null != batchInstanceIdentifierSet && batchInstanceIdentifierSet.size() > 0) {
                final Conjunction conjunction = Restrictions.conjunction();
                conjunction.add(Restrictions.in(BATCH_INSTANCE_IDENTIFIER, batchInstanceIdentifiers));
                conjunction.add(Restrictions
                        .not(Restrictions.in(BATCH_INSTANCE_IDENTIFIER, batchInstanceIdentifierSet)));
                criteria.add(conjunction);
            } else if (null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0) {
                criteria.add(Restrictions.in(BATCH_INSTANCE_IDENTIFIER, batchInstanceIdentifiers));
            } else if (null != batchClassIdentifiers && batchClassIdentifiers.size() > 0) {
                criteria.createAlias(BATCH_CLASS, BATCH_CLASS);
                criteria.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers));
            }
            if (!isNotCurrentUserCheckReq && null != currentUserName) {
                criteria.add(Restrictions.or(Restrictions.isNull(CURRENT_USER),
                        Restrictions.eq(CURRENT_USER, currentUserName)));
            }
            count = count(criteria);
        }
    }
    return count;
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchInstanceDaoImpl.java

License:Open Source License

/**
 * An API to fetch all the batch instance by BatchPriority.
 * /*w ww.j  a va 2  s .c o  m*/
 * @param batchPriority BatchPriority this will add the where clause to the criteria query based on the priority column.
 * @return List<BatchInstance> return the batch instance list.
 */
@Override
public List<BatchInstance> getBatchInstance(BatchPriority batchPriority) {
    DetachedCriteria criteria = criteria();
    Integer lowValue = batchPriority.getLowerLimit();
    Integer upperValue = batchPriority.getUpperLimit();
    criteria.add(Restrictions.between(PRIORITY, lowValue, upperValue));
    return find(criteria);
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchInstanceDaoImpl.java

License:Open Source License

/**
 * An API to fetch all batch instance by batch Class Name.
 * /*from  w w w .  j  a  v a2 s .c om*/
 * @param batchClassName String
 * @return List<BatchInstance>
 */
@Override
public List<BatchInstance> getBatchInstByBatchClassName(String batchClassName) {
    DetachedCriteria criteria = criteria();
    criteria.createAlias(BATCH_CLASS, BATCH_CLASS, JoinFragment.INNER_JOIN);
    criteria.add(Restrictions.eq(BATCH_CLASS_NAME, batchClassName));
    return find(criteria);
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchInstanceDaoImpl.java

License:Open Source License

/**
 * An API to fetch all batch instance by batch Class Process Name.
 * /*from  w  w w  .j a  v  a  2s.c o  m*/
 * @param batchClassProcessName String
 * @return List<BatchInstance>
 */
@Override
public List<BatchInstance> getBatchInstByBatchClassProcessName(String batchClassProcessName) {
    DetachedCriteria criteria = criteria();
    criteria.createAlias(BATCH_CLASS, BATCH_CLASS, JoinFragment.INNER_JOIN);
    criteria.add(Restrictions.eq(BATCH_CLASS_PROCESS_NAME, batchClassProcessName));
    return find(criteria);
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchInstanceDaoImpl.java

License:Open Source License

/**
 * An API to fetch all batch instance by batch Class Process and batch instance id's list.
 * //  ww w.  j ava2  s. co  m
 * @param batchClassName String
 * @param batchInstanceIDList List<String>
 * @return List<BatchInstance>
 */
@Override
public List<BatchInstance> getBatchInstanceList(String batchClassName, List<String> batchInstanceIDList) {
    DetachedCriteria criteria = criteria();
    criteria.createAlias(BATCH_CLASS, BATCH_CLASS, JoinFragment.INNER_JOIN);
    criteria.add(Restrictions.eq(BATCH_CLASS_NAME, batchClassName));
    criteria.add(Restrictions.in("identifier", batchInstanceIDList));
    return find(criteria);
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchInstanceDaoImpl.java

License:Open Source License

/**
 * An API to fetch all batch instance for current user.
 * /* w  w  w .  j a v a2  s  .  c  om*/
 * @param currentUser String
 * @return List<BatchInstance>
 */
@Override
public List<BatchInstance> getAllBatchInstancesForCurrentUser(String currentUser) {
    DetachedCriteria criteria = criteria();
    criteria.add(Restrictions.eq(CURRENT_USER, currentUser));
    return find(criteria);
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchInstanceDaoImpl.java

License:Open Source License

/**
 * API to fetch running batch instances.
 * /*from w w w  .  ja va  2s .  c om*/
 * @param lockOwner ServerRegistry
 * @return List<BatchInstance>
 */
@Override
public List<BatchInstance> getRunningBatchInstancesFor(ServerRegistry lockOwner) {
    DetachedCriteria criteria = criteria();
    criteria.add(Restrictions.ne(STATUS, BatchInstanceStatus.NEW));
    criteria.add(Restrictions.ne(STATUS, BatchInstanceStatus.ERROR));
    criteria.add(Restrictions.ne(STATUS, BatchInstanceStatus.FINISHED));
    criteria.add(Restrictions.ne(STATUS, BatchInstanceStatus.READY_FOR_REVIEW));
    criteria.add(Restrictions.ne(STATUS, BatchInstanceStatus.READY_FOR_VALIDATION));
    criteria.add(Restrictions.eq("lockOwner", lockOwner));
    return find(criteria);
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchInstanceDaoImpl.java

License:Open Source License

/**
 * API to fetch all unfinished batch instances.
 * //from w w w .ja  v a 2 s. c  om
 * @param uncFolder String
 * @return List<BatchInstance>
 */
@Override
public List<BatchInstance> getAllUnFinishedBatchInstances(String uncFolder) {
    DetachedCriteria criteria = criteria();
    criteria.createAlias(BATCH_CLASS, BATCH_CLASS, JoinFragment.INNER_JOIN);
    criteria.add(Restrictions.eq("batchClass.uncFolder", uncFolder));

    List<BatchInstanceStatus> statusList = new ArrayList<BatchInstanceStatus>();
    statusList.add(BatchInstanceStatus.NEW);
    statusList.add(BatchInstanceStatus.ERROR);
    statusList.add(BatchInstanceStatus.READY_FOR_REVIEW);
    statusList.add(BatchInstanceStatus.READY_FOR_VALIDATION);
    statusList.add(BatchInstanceStatus.RUNNING);
    statusList.add(BatchInstanceStatus.READY);
    statusList.add(BatchInstanceStatus.RESTART_IN_PROGRESS);
    statusList.add(BatchInstanceStatus.LOCKED);
    criteria.add(Restrictions.in(STATUS, statusList));

    return find(criteria);
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchInstanceDaoImpl.java

License:Open Source License

/**
 * An API return all unfinished remotely executing batch instances.
 * //w ww .  j av  a 2 s  . c om
 * @return List<BatchInstance>
 */
@Override
public List<BatchInstance> getAllUnfinshedRemotelyExecutedBatchInstance() {
    DetachedCriteria criteria = criteria();
    criteria.add(Restrictions.eq(IS_REMOTE, true));
    List<BatchInstanceStatus> statusList = new ArrayList<BatchInstanceStatus>();
    statusList.add(BatchInstanceStatus.READY_FOR_REVIEW);
    statusList.add(BatchInstanceStatus.READY_FOR_VALIDATION);
    statusList.add(BatchInstanceStatus.RUNNING);
    statusList.add(BatchInstanceStatus.TRANSFERRED);
    statusList.add(BatchInstanceStatus.READY);
    statusList.add(BatchInstanceStatus.REMOTE);
    statusList.add(BatchInstanceStatus.ERROR);
    criteria.add(Restrictions.in(STATUS, statusList));
    return find(criteria);

}