List of usage examples for org.hibernate.criterion DetachedCriteria add
public DetachedCriteria add(Criterion criterion)
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); }