List of usage examples for org.hibernate.criterion Restrictions conjunction
public static Conjunction conjunction()
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 ww w . jav a 2 s. 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 all the batch instance for status list input. API will return those batch instance having access by the user * roles on the basis of ephesoft user./*from w ww.j a v a 2 s . c o m*/ * * @param statusList List<BatchInstanceStatus> * @param firstResult int * @param maxResults int * @param userRoles Set<String> * @param ephesoftUser EphesoftUser * @return List<BatchInstance> */ @Override public List<BatchInstance> getBatchInstances(List<BatchInstanceStatus> statusList, final int firstResult, final int maxResults, final Set<String> userRoles, EphesoftUser ephesoftUser) { List<BatchInstance> batchInstances = new ArrayList<BatchInstance>(); Set<String> batchClassIdentifiers = batchClassGroupsDao.getBatchClassIdentifierForUserRoles(userRoles); EphesoftCriteria criteria = criteria(); criteria.add(Restrictions.in(STATUS, statusList)); criteria.add(Restrictions.isNull(CURRENT_USER)); criteria.add(Restrictions.eq(IS_REMOTE, false)); switch (ephesoftUser) { case NORMAL_USER: Set<String> batchInstanceIdentifiers = batchInstanceGroupsDao .getBatchInstanceIdentifierForUserRoles(userRoles); Set<String> batchInstanceIdentifierSet = batchInstanceGroupsDao .getBatchInstanceIdentifiersExceptUserRoles(userRoles); if ((null != batchClassIdentifiers && batchClassIdentifiers.size() > 0) || (null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0)) { 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)); } List<Order> orderList = new ArrayList<Order>(); Order orderForHighestBatchPriority = new Order(BatchInstanceProperty.PRIORITY, true); Order orderForLastModified = new Order(BatchInstanceProperty.LASTMODIFIED, false); orderList.add(orderForLastModified); orderList.add(orderForHighestBatchPriority); batchInstances = find(criteria, firstResult, maxResults, orderList.toArray(new Order[orderList.size()])); } break; default: if (null != batchClassIdentifiers && batchClassIdentifiers.size() > 0) { criteria.createAlias(BATCH_CLASS, BATCH_CLASS); criteria.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers)); List<Order> orderList = new ArrayList<Order>(); Order orderForHighestBatchPriority = new Order(BatchInstanceProperty.PRIORITY, true); Order orderForLastModified = new Order(BatchInstanceProperty.LASTMODIFIED, false); orderList.add(orderForLastModified); orderList.add(orderForHighestBatchPriority); batchInstances = find(criteria, firstResult, maxResults, orderList.toArray(new Order[orderList.size()])); } break; } return batchInstances; }
From source file:com.ephesoft.dcma.da.dao.hibernate.BatchInstanceDaoImpl.java
License:Open Source License
/** * This API fetches batch instance on the basis of user name and the roles defined for that user name in the batch class. * //from ww w . ja v a 2s . c om * @param userRoles Set<String> * @param batchInstanceIdentifier String * @param currentUserName String * @param ephesoftUser EphesoftUser * @return {@link BatchInstance} */ @Override public BatchInstance getBatchInstanceByUserRole(final Set<String> userRoles, String batchInstanceIdentifier, String currentUserName, EphesoftUser ephesoftUser) { BatchInstance batchInstances = null; Set<String> batchClassIdentifiers = null; switch (ephesoftUser) { case NORMAL_USER: batchClassIdentifiers = batchClassGroupsDao.getBatchClassIdentifierForUserRoles(userRoles); Set<String> batchInstanceIdentifiers = batchInstanceGroupsDao .getBatchInstanceIdentifierForUserRoles(userRoles); Set<String> batchInstanceIdentifierSet = batchInstanceGroupsDao .getBatchInstanceIdentifiersExceptUserRoles(userRoles); if ((null != batchClassIdentifiers && batchClassIdentifiers.size() > 0) || (null != batchInstanceIdentifiers && batchInstanceIdentifiers.size() > 0)) { EphesoftCriteria criteria = criteria(); criteria.add(Restrictions.or(Restrictions.isNull(CURRENT_USER), Restrictions.eq(CURRENT_USER, currentUserName))); criteria.add(Restrictions.eq(IS_REMOTE, false)); criteria.add(Restrictions.eq(BATCH_INSTANCE_IDENTIFIER, batchInstanceIdentifier)); 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)); } batchInstances = findSingle(criteria); } break; default: batchClassIdentifiers = batchClassGroupsDao.getBatchClassIdentifierForUserRoles(userRoles); if (null != batchClassIdentifiers && batchClassIdentifiers.size() > 0) { EphesoftCriteria criteria = criteria(); criteria.add(Restrictions.or(Restrictions.isNull(CURRENT_USER), Restrictions.eq(CURRENT_USER, currentUserName))); criteria.add(Restrictions.eq(IS_REMOTE, false)); criteria.add(Restrictions.eq(BATCH_INSTANCE_IDENTIFIER, batchInstanceIdentifier)); criteria.createAlias(BATCH_CLASS, BATCH_CLASS); criteria.add(Restrictions.in(BATCH_CLASS_IDENTIFIER, batchClassIdentifiers)); batchInstances = findSingle(criteria); } break; } 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 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 w w w.jav a 2 s . 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.eryansky.common.orm.core.hibernate.restriction.CriterionSingleValueSupport.java
License:Apache License
public Criterion build(PropertyFilter filter) { String matchValue = filter.getMatchValue(); Class<?> FieldType = filter.getFieldType(); MatchValue matchValueModel = getMatchValue(matchValue, FieldType); Junction criterion = null;/*from w w w. ja va 2s. c om*/ if (matchValueModel.hasOrOperate()) { criterion = Restrictions.disjunction(); } else { criterion = Restrictions.conjunction(); } for (Object value : matchValueModel.getValues()) { if (filter.hasMultiplePropertyNames()) { List<Criterion> disjunction = new ArrayList<Criterion>(); for (String propertyName : filter.getPropertyNames()) { disjunction.add(build(propertyName, value)); } criterion.add(Restrictions.or(disjunction.toArray(new Criterion[disjunction.size()]))); } else { criterion.add(build(filter.getSinglePropertyName(), value)); } } return criterion; }
From source file:com.eucalyptus.autoscaling.activities.PersistenceScalingActivities.java
License:Open Source License
@Override public <T> List<T> list(@Nullable final OwnerFullName ownerFullName, @Nullable final AutoScalingGroupMetadata group, @Nonnull final Collection<String> activityIds, @Nonnull final Predicate<? super ScalingActivity> filter, @Nonnull final Function<? super ScalingActivity, T> transform) throws AutoScalingMetadataException { final ScalingActivity example = ScalingActivity.withOwner(ownerFullName); final Conjunction conjunction = Restrictions.conjunction(); final Collection<Predicate<? super ScalingActivity>> predicates = Lists.newArrayList(); predicates.add(filter);/*from ww w . j a va 2s.com*/ if (group != null) { predicates.add(CollectionUtils.propertyPredicate(group.getArn(), Functions.compose(AutoScalingMetadatas.toArn(), ScalingActivities.group()))); conjunction.add(Restrictions.eq("autoScalingGroupName", group.getDisplayName())); } if (!activityIds.isEmpty()) { conjunction.add(Restrictions.in("displayName", activityIds)); } return persistenceSupport.listByExample(example, Predicates.and(predicates), conjunction, Collections.<String, String>emptyMap(), transform); }
From source file:com.eucalyptus.autoscaling.activities.PersistenceScalingActivities.java
License:Open Source License
@Override public <T> List<T> listByActivityStatusCode(@Nullable final OwnerFullName ownerFullName, @Nonnull final Collection<ActivityStatusCode> statusCodes, @Nonnull final Function<? super ScalingActivity, T> transform) throws AutoScalingMetadataException { final ScalingActivity example = ScalingActivity.withOwner(ownerFullName); final Conjunction conjunction = Restrictions.conjunction(); if (!statusCodes.isEmpty()) { conjunction.add(Restrictions.in("statusCode", statusCodes)); }/*www .j ava 2 s . com*/ return persistenceSupport.listByExample(example, Predicates.alwaysTrue(), conjunction, Collections.<String, String>emptyMap(), transform); }
From source file:com.eucalyptus.autoscaling.AutoScalingService.java
License:Open Source License
public DescribeTagsResponseType describeTags(final DescribeTagsType request) throws EucalyptusCloudException { final DescribeTagsResponseType reply = request.getReply(); //TODO: MaxRecords / NextToken support for DescribeTags final Collection<Predicate<Tag>> tagFilters = Lists.newArrayList(); for (final Filter filter : request.filters()) { final Function<Tag, String> extractor = tagFilterExtractors.get(filter.getName()); if (extractor == null) { throw new ValidationErrorException("Filter type " + filter.getName() + " is not correct. Allowed Filter types are: auto-scaling-group key value propagate-at-launch"); }/* w w w.ja v a 2s.co m*/ final Function<String, String> tagValueConverter = Objects .firstNonNull(tagValuePreProcessors.get(filter.getName()), Functions.<String>identity()); tagFilters.add(Predicates .compose(Predicates.in(Collections2.transform(filter.values(), tagValueConverter)), extractor)); } final Context context = Contexts.lookup(); final Ordering<Tag> ordering = Ordering.natural().onResultOf(Tags.resourceId()) .compound(Ordering.natural().onResultOf(Tags.key())) .compound(Ordering.natural().onResultOf(Tags.value())); try { final TagDescriptionList tagDescriptions = new TagDescriptionList(); for (final Tag tag : ordering .sortedCopy(Tags.list(context.getUserFullName().asAccountFullName(), Predicates.and(tagFilters), Restrictions.conjunction(), Collections.<String, String>emptyMap()))) { if (Permissions.isAuthorized(PolicySpec.VENDOR_AUTOSCALING, tag.getResourceType(), tag.getKey(), context.getAccount(), PolicySpec.describeAction(PolicySpec.VENDOR_AUTOSCALING, tag.getResourceType()), context.getUser())) { tagDescriptions.getMember().add(TypeMappers.transform(tag, TagDescription.class)); } } if (!tagDescriptions.getMember().isEmpty()) { reply.getDescribeTagsResult().setTags(tagDescriptions); } } catch (AutoScalingMetadataNotFoundException e) { handleException(e); } return reply; }
From source file:com.eucalyptus.autoscaling.backend.AutoScalingBackendService.java
License:Open Source License
public DescribeTagsResponseType describeTags(final DescribeTagsType request) throws EucalyptusCloudException { final DescribeTagsResponseType reply = request.getReply(); //TODO: MaxRecords / NextToken support for DescribeTags final Collection<Predicate<Tag>> tagFilters = Lists.newArrayList(); for (final Filter filter : request.filters()) { final Function<Tag, String> extractor = tagFilterExtractors.get(filter.getName()); if (extractor == null) { throw new ValidationErrorException("Filter type " + filter.getName() + " is not correct. Allowed Filter types are: auto-scaling-group key value propagate-at-launch"); }//from w w w . j av a2 s. co m final Function<String, String> tagValueConverter = Objects .firstNonNull(tagValuePreProcessors.get(filter.getName()), Functions.<String>identity()); tagFilters.add(Predicates .compose(Predicates.in(Collections2.transform(filter.values(), tagValueConverter)), extractor)); } final Context context = Contexts.lookup(); final Ordering<Tag> ordering = Ordering.natural().onResultOf(Tags.resourceId()) .compound(Ordering.natural().onResultOf(Tags.key())) .compound(Ordering.natural().onResultOf(Tags.value())); try { final TagDescriptionList tagDescriptions = new TagDescriptionList(); for (final Tag tag : ordering .sortedCopy(Tags.list(context.getUserFullName().asAccountFullName(), Predicates.and(tagFilters), Restrictions.conjunction(), Collections.<String, String>emptyMap()))) { if (Permissions.isAuthorized(PolicySpec.VENDOR_AUTOSCALING, tag.getResourceType(), tag.getKey(), context.getAccount(), PolicySpec.describeAction(PolicySpec.VENDOR_AUTOSCALING, tag.getResourceType()), context.getAuthContext())) { tagDescriptions.getMember().add(TypeMappers.transform(tag, TagDescription.class)); } } if (!tagDescriptions.getMember().isEmpty()) { reply.getDescribeTagsResult().setTags(tagDescriptions); } } catch (AutoScalingMetadataNotFoundException e) { handleException(e); } return reply; }
From source file:com.eucalyptus.autoscaling.common.internal.instances.PersistenceAutoScalingInstances.java
License:Open Source License
@Override public void markMissingInstancesUnhealthy(final AutoScalingGroupMetadata group, final Collection<String> instanceIds) throws AutoScalingMetadataException { final AutoScalingInstance example = exampleForGroup(group); example.setHealthStatus(HealthStatus.Healthy); final List<AutoScalingInstance> instancesToMark = persistenceSupport.listByExample(example, LifecycleState.InService,/*from w ww. j a v a 2 s . c o m*/ instanceIds.isEmpty() ? Restrictions.conjunction() : Restrictions.not(Property.forName("displayName").in(instanceIds)), Collections.<String, String>emptyMap(), Functions.<AutoScalingInstance>identity()); for (final AutoScalingInstance instance : instancesToMark) { try { persistenceSupport.updateByExample(AutoScalingInstance.withUuid(instance.getNaturalId()), group.getOwner(), instance.getInstanceId(), new Callback<AutoScalingInstance>() { @Override public void fire(final AutoScalingInstance instance) { if (instance.healthStatusGracePeriodExpired()) { logger.info("Marking instance unhealthy: " + instance.getInstanceId()); instance.setHealthStatus(HealthStatus.Unhealthy); } else { logger.debug("Instance not healthy but within grace period: " + instance.getInstanceId()); } } }); } catch (final AutoScalingMetadataNotFoundException e) { // removed, no need to mark unhealthy } } }