List of usage examples for org.hibernate.criterion Restrictions like
public static SimpleExpression like(String propertyName, Object value)
From source file:com.denimgroup.threadfix.data.dao.hibernate.HibernateUserDao.java
License:Mozilla Public License
@Override public List<User> getSearchResults(String searchString, int number, int page) { return (List<User>) getSession().createCriteria(User.class).add(Restrictions.eq("active", true)) .add(Restrictions.or(Restrictions.like("name", "%" + searchString + "%"), Restrictions.like("displayName", "%" + searchString + "%"))) .setMaxResults(number).setFirstResult((page - 1) * number).addOrder(Order.asc("name")).list(); }
From source file:com.denimgroup.threadfix.data.dao.hibernate.HibernateVulnerabilityDao.java
License:Mozilla Public License
/** * I would feel bad about having so much logic here but the alternatives are * passing in a query string which is a terrible idea or * having a ton of methods which also isn't any good. *//*from w w w. ja va2 s . c o m*/ @SuppressWarnings("unchecked") @Override public List<Vulnerability> retrieveActiveByAppIdAndPage(int appId, int page, int sort, int field, Integer cwe, String description, String severity, String path, String param, boolean open, boolean falsePositive, boolean hidden) { String[] headers = new String[] { "", "vuln.name", "severity.intValue", "surface.path", "surface.parameter" }; Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Vulnerability.class); if (hidden) { criteria.add(Restrictions.eq("hidden", true)); } else { criteria.add(Restrictions.eq("hidden", false)); if (!open && falsePositive) { criteria.add(Restrictions.eq("isFalsePositive", true)); } else { criteria.add(Restrictions.eq("active", open)).add(Restrictions.eq("hidden", false)) .add(Restrictions.eq("isFalsePositive", falsePositive)); } } criteria.add(Restrictions.eq("application.id", appId)).createAlias("genericSeverity", "severity") .createAlias("genericVulnerability", "vuln").createAlias("surfaceLocation", "surface") .setFirstResult((page - 1) * 100).setMaxResults(100); // Add Filtering restrictions if (description != null) { criteria.add(Restrictions.like("vuln.name", "%" + description + "%").ignoreCase()); } if (severity != null) { criteria.add(Restrictions.like("severity.name", "%" + severity + "%").ignoreCase()); } if (path != null) { criteria.add(Restrictions.like("surface.path", "%" + path + "%").ignoreCase()); } if (param != null) { criteria.add(Restrictions.like("surface.parameter", "%" + param + "%").ignoreCase()); } if (cwe != null) { criteria.add(Restrictions.eq("vuln.id", cwe)); } // Add Ordering if (sort != 1 && sort != 2 || field <= 0 || field > headers.length) { criteria.addOrder(Order.desc("severity.intValue")).addOrder(Order.asc("vuln.name")) .addOrder(Order.asc("surface.path")).addOrder(Order.asc("surface.parameter")); } else { String item = headers[field]; if (sort == 1) { criteria.addOrder(Order.asc(item)); } else if (sort == 2) { criteria.addOrder(Order.desc(item)); } } return criteria.list(); }
From source file:com.denimgroup.threadfix.data.dao.hibernate.HibernateVulnerabilityDao.java
License:Mozilla Public License
@Override public long getVulnCountWithFilters(Integer appId, String description, String severity, String path, String param, Integer cweInteger, boolean open, boolean falsePositive, boolean hidden) { Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Vulnerability.class); if (hidden) { criteria.add(Restrictions.eq("hidden", true)); } else {/*w w w . j a va 2 s. co m*/ criteria.add(Restrictions.eq("hidden", false)); if (!open && falsePositive) { criteria.add(Restrictions.eq("isFalsePositive", true)); } else { criteria.add(Restrictions.eq("active", open)).add(Restrictions.eq("hidden", false)) .add(Restrictions.eq("isFalsePositive", falsePositive)); } } criteria.createAlias("genericVulnerability", "vuln").add(Restrictions.eq("application.id", appId)); // Add Filtering restrictions if (description != null) { criteria.add(Restrictions.like("vuln.name", "%" + description + "%").ignoreCase()); } if (severity != null) { criteria.createAlias("genericSeverity", "severity") .add(Restrictions.like("severity.name", "%" + severity + "%").ignoreCase()); } if (path != null) { criteria.createAlias("surfaceLocation", "surface") .add(Restrictions.like("surface.path", "%" + path + "%").ignoreCase()); } if (cweInteger != null) { criteria.add(Restrictions.eq("vuln.id", cweInteger)); } if (param != null) { criteria.createAlias("surfaceLocation", "surface") .add(Restrictions.like("surface.parameter", "%" + param + "%").ignoreCase()); } return (Long) criteria.setProjection(Projections.rowCount()).uniqueResult(); }
From source file:com.denimgroup.threadfix.data.dao.hibernate.VulnerabilitySearchCriteriaConstructor.java
License:Mozilla Public License
private void addPathAndParameter() { String path = parameters.getPath(); if (path != null && !path.trim().equals("")) { LOG.debug("Adding path = " + path); criteria.add(Restrictions.like("surface.path", "%" + path + "%").ignoreCase()); }//from w ww . j a v a2s .c om String parameter = parameters.getParameter(); if (parameter != null && !parameter.trim().equals("")) { LOG.debug("Adding parameter = " + parameter); criteria.add(Restrictions.like("surface.parameter", "%" + parameter + "%").ignoreCase()); } }
From source file:com.easysoft.build.dao.BuildConfigInfoDao.java
License:Apache License
public List<BuildConfigInfo> getBuildConfigInfoList(BuildConfigInfoSearchBean searchBean, PageOption pageOption, String curBranch) {/* ww w . ja v a 2 s .c o m*/ List<Criterion> criterions = new ArrayList<Criterion>(); if (StringUtils.isNotEmpty(searchBean.getBuildFileName())) { criterions.add(Restrictions.like("buildFileName", searchBean.getBuildFileName())); } return this.queryForPage(pageOption, criterions); /*String pageHql = " from BuildConfigInfo bc left join bc.ri rInfo where 1=1 and bc.ri.name='"+curBranch+"' "+searchBean.getSerchCondition(); if("1".equals(searchBean.getIo())){ pageHql += " and bc.status <> '4' "; } String hql = "from BuildConfigInfo bc left join fetch bc.ri rInfo left join fetch bc.bd where 1=1 and bc.ri.name='"+curBranch+"' " +searchBean.getSerchCondition(); if("1".equals(searchBean.getIo())){ hql += " and bc.status <> '4' "; } hql += " order by " + searchBean.getSort() + " " + searchBean.getOrder(); return this.queryForHQL(hql,null);*/ }
From source file:com.ephesoft.dcma.da.dao.hibernate.BatchInstanceDaoImpl.java
License:Open Source License
/** * An API to fetch all batch instance by batch name or id. * //from ww w. j a va 2 s . c om * @param searchString String * @param userRoles Set<String> * @return List<BatchInstance> */ @Override public List<BatchInstance> getBatchInstancesByBatchNameOrId(String searchString, Set<String> userRoles) { DetachedCriteria criteria = criteria(); List<BatchInstance> batchInstances = new ArrayList<BatchInstance>(); Set<String> batchClassIdentifiers = batchClassGroupsDao.getBatchClassIdentifierForUserRoles(userRoles); 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 (batchClassIdentifiers != null && batchClassIdentifiers.size() > 0) { criteria.createAlias(BATCH_CLASS, BATCH_CLASS); criteria.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers)); batchInstances = find(criteria); } return batchInstances; }
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 status and batch priority. API will return those batch * instance having access by the user roles on the basis of ephesoft user. * /*from w ww .j a va 2 s . com*/ * @param batchName {@link String} * @param batchInstanceStatus {@link BatchInstanceStatus} * @param userName {@link String} * @param priority {@link BatchPriority} * @param userRoles Set<{@link String}> * @param ephesoftUser {@link EphesoftUser} * @return int, count of the batch instance present for the batch instance status. */ @Override public int getCount(String batchName, BatchInstanceStatus batchInstanceStatus, String userName, BatchPriority batchPriority, Set<String> userRoles, EphesoftUser ephesoftUser) { int count = 0; DetachedCriteria criteria = criteria(); if (batchName != null && !batchName.isEmpty()) { String batchNameLocal = batchName.replaceAll(DataAccessConstant.PERCENTAGE, REPLACEMENT_STRING); Criterion nameLikeCriteria = Restrictions.like(BATCH_NAME, DataAccessConstant.PERCENTAGE + batchNameLocal + DataAccessConstant.PERCENTAGE); Criterion idLikeCriteria = Restrictions.like(BATCH_INSTANCE_IDENTIFIER, DataAccessConstant.PERCENTAGE + batchNameLocal + DataAccessConstant.PERCENTAGE); LogicalExpression searchCriteria = Restrictions.or(nameLikeCriteria, idLikeCriteria); criteria.add(searchCriteria); } else if (null != batchPriority) { Disjunction disjunction = Restrictions.disjunction(); Integer lowValue = batchPriority.getLowerLimit(); Integer upperValue = batchPriority.getUpperLimit(); disjunction.add(Restrictions.between(PRIORITY, lowValue, upperValue)); criteria.add(disjunction); } Set<String> batchClassIdentifiers = batchClassGroupsDao.getBatchClassIdentifierForUserRoles(userRoles); if (EphesoftUser.NORMAL_USER.equals(ephesoftUser)) { Set<String> batchInstanceIdentifiers = batchInstanceGroupsDao .getBatchInstanceIdentifierForUserRoles(userRoles); if ((null != batchClassIdentifiers && batchClassIdentifiers.size() > 0) || (null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0)) { criteria.add(Restrictions.eq(STATUS, batchInstanceStatus)); criteria.add(Restrictions.eq(IS_REMOTE, false)); criteria.add(Restrictions.or(Restrictions.isNull(CURRENT_USER), Restrictions.eq(CURRENT_USER, userName))); 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); count = count(criteria); } else { if (null != batchClassIdentifiers && batchClassIdentifiers.size() > 0) { criteria.add(Restrictions.eq(STATUS, batchInstanceStatus)); criteria.add(Restrictions.eq(IS_REMOTE, false)); criteria.add(Restrictions.or(Restrictions.isNull(CURRENT_USER), Restrictions.eq(CURRENT_USER, userName))); criteria.createAlias(BATCH_CLASS, BATCH_CLASS); criteria.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers)); 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 instances excluding remotely executing batches by status list. Parameter firstResult set a limit * upon the number of objects to be retrieved. Parameter maxResults set the first result to be retrieved. Parameter orderList set * the sort property and order of that property. If orderList parameter is null or empty then this parameter is avoided. This will * return only those batch instance which having access by the user roles on the basis of the ephesoft user. * /*from w w w . j a va 2s . c o m*/ * @param searchString {@link String} * @param statusList List<{@link BatchInstanceStatus}> status list of batch instance status. * @param firstResult the first result to retrieve, numbered from <tt>0</tt> * @param maxResults maxResults the maximum number of results * @param orderList List<{@link Order}> orderList set the sort property and order of that property. If orderList parameter is null * or empty then this parameter is avoided. * @param filterClauseList List<{@link BatchInstanceFilter}> this will add the where clause to the criteria query based on the * property name and value. If filterClauseList parameter is null or empty then this parameter is avoided. * @param batchPriorities List<{@link BatchPriority}> this will add the where clause to the criteria query based on the priority * list selected. If batchPriorities parameter is null or empty then this parameter is avoided. * @param userName {@link String} * @param userRoles Set<{@link String}> * @param ephesoftUser {@link EphesoftUser} * @return List<{@link BatchInstance}> return the batch instance list. */ @Override public List<BatchInstance> getBatchInstancesExcludedRemoteBatch(final String searchString, List<BatchInstanceStatus> statusList, final int firstResult, final int maxResults, final List<Order> orderList, final List<BatchInstanceFilter> filterClauseList, final List<BatchPriority> batchPriorities, String userName, final Set<String> userRoles, EphesoftUser ephesoftUser) { EphesoftCriteria criteria = criteria(); if (searchString != null && !searchString.isEmpty()) { String batchNameLocal = searchString.replaceAll("%", "\\\\%"); Criterion nameLikeCriteria = Restrictions.like(BATCH_NAME, "%" + batchNameLocal + "%"); Criterion idLikeCriteria = Restrictions.like(BATCH_INSTANCE_IDENTIFIER, "%" + batchNameLocal + "%"); LogicalExpression searchCriteria = Restrictions.or(nameLikeCriteria, idLikeCriteria); criteria.add(searchCriteria); } if (null != statusList) { criteria.add(Restrictions.in(STATUS, statusList)); criteria.add( Restrictions.or(Restrictions.isNull(CURRENT_USER), Restrictions.eq(CURRENT_USER, userName))); criteria.add(Restrictions.eq(IS_REMOTE, false)); } 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); } List<BatchInstance> batchInstanceList = new ArrayList<BatchInstance>(); Set<String> batchClassIdentifiers = batchClassGroupsDao.getBatchClassIdentifierForUserRoles(userRoles); switch (ephesoftUser) { case NORMAL_USER: batchClassIdentifiers = batchClassGroupsDao.getBatchClassIdentifierForUserRoles(userRoles); Set<String> batchInstanceIdentifierSet = batchInstanceGroupsDao .getBatchInstanceIdentifiersExceptUserRoles(userRoles); Set<String> batchInstanceIdentifiers = batchInstanceGroupsDao .getBatchInstanceIdentifierForUserRoles(userRoles); if ((null != batchClassIdentifiers && batchClassIdentifiers.size() > 0) || (null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0)) { BatchInstanceFilter[] filters = null; if (filterClauseList != null) { filters = filterClauseList.toArray(new BatchInstanceFilter[filterClauseList.size()]); } Order[] orders = null; if (orderList != null) { orders = orderList.toArray(new Order[orderList.size()]); } 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)); } batchInstanceList = find(criteria, firstResult, maxResults, filters, orders); } break; default: if (null != batchClassIdentifiers && batchClassIdentifiers.size() > 0) { BatchInstanceFilter[] filters = null; if (filterClauseList != null) { filters = filterClauseList.toArray(new BatchInstanceFilter[filterClauseList.size()]); } Order[] orders = null; if (orderList != null) { orders = orderList.toArray(new Order[orderList.size()]); } criteria.createAlias(BATCH_CLASS, BATCH_CLASS); criteria.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers)); batchInstanceList = find(criteria, firstResult, maxResults, filters, orders); } break; } return batchInstanceList; }
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.//w w w . ja v a 2s . c om * * @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
/** * API to fetch batch instance list by Batch name and status. * /*from w w w . j a va 2 s . c o m*/ * @param batchName String * @param batchStatus BatchInstanceStatus * @param userName String * @param userRoles Set<String> * @return List<BatchInstance> */ @Override public List<BatchInstance> getBatchInstanceListByBatchNameAndStatus(String batchName, BatchInstanceStatus batchStatus, String userName, Set<String> userRoles) { EphesoftCriteria criteria = criteria(); List<BatchInstance> batchInstanceList = null; String batchNameLocal = batchName.replaceAll(DataAccessConstant.PERCENTAGE, REPLACEMENT_STRING); if (batchStatus != null) { criteria.add(Restrictions.like(BATCH_NAME, DataAccessConstant.PERCENTAGE + batchNameLocal + DataAccessConstant.PERCENTAGE)); criteria.add(Restrictions.eq(STATUS, batchStatus)); criteria.add( Restrictions.or(Restrictions.isNull(CURRENT_USER), Restrictions.eq(CURRENT_USER, userName))); Set<String> batchClassIdentifiers = batchClassGroupsDao.getBatchClassIdentifierForUserRoles(userRoles); if (null != batchClassIdentifiers && batchClassIdentifiers.size() > 0) { criteria.createAlias(BATCH_CLASS, BATCH_CLASS); criteria.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers)); batchInstanceList = find(criteria); } } return batchInstanceList; }