List of usage examples for org.apache.commons.lang ObjectUtils compare
public static <T extends Comparable<? super T>> int compare(T c1, T c2)
From source file:org.kuali.kpme.tklm.time.rules.overtime.weekly.service.WeeklyOvertimeRuleServiceImpl.java
/** * Applies negative overtime to the given FlsaDays. * //w ww . j av a 2 s . c om * @param flsaDays The FlsaDays to apply the overtime to * @param weeklyOvertimeRule The WeeklyOvertimeRule in effective * @param asOfDate The effectiveDate of the WorkArea * @param convertFromEarnCodes The EarnCodes to convert to overtime * @param overtimeHours The number of overtime hours to apply */ protected void applyNegativeOvertimeToFlsaWeek(List<FlsaDay> flsaDays, WeeklyOvertimeRule weeklyOvertimeRule, LocalDate asOfDate, Set<String> convertFromEarnCodes, BigDecimal overtimeHours) { for (ListIterator<FlsaDay> dayIterator = flsaDays.listIterator(); dayIterator.hasNext();) { FlsaDay flsaDay = dayIterator.next(); List<TimeBlock> timeBlocks = new ArrayList(flsaDay.getAppliedTimeBlocks()); Collections.sort(timeBlocks, new Comparator<TimeBlock>() { public int compare(TimeBlock timeBlock1, TimeBlock timeBlock2) { return ObjectUtils.compare(timeBlock1.getBeginDateTime(), timeBlock2.getBeginDateTime()); } }); List<TimeBlockBo> bos = ModelObjectUtils.transform(timeBlocks, toTimeBlockBo); for (ListIterator<TimeBlockBo> timeBlockIterator = bos.listIterator(); timeBlockIterator.hasNext();) { TimeBlockBo timeBlock = timeBlockIterator.next(); String overtimeEarnCode = getOvertimeEarnCode(weeklyOvertimeRule, timeBlock, asOfDate); overtimeHours = applyNegativeOvertimeOnTimeBlock(timeBlock, overtimeEarnCode, convertFromEarnCodes, overtimeHours); } flsaDay.setAppliedTimeBlocks(ModelObjectUtils.transform(bos, toTimeBlock)); flsaDay.remapTimeHourDetails(); } }
From source file:org.kuali.kra.proposaldevelopment.budget.bo.BudgetSubAwards.java
@Override public int compareTo(BudgetSubAwards o) { int retVal = -1; if (o != null) { retVal = ObjectUtils.compare(getOrganizationName(), o.getOrganizationName()); if (retVal == 0) { retVal = ObjectUtils.compare(getComments(), o.getComments()); if (retVal == 0) { retVal = ObjectUtils.compare(getSubAwardXfdFileName(), o.getSubAwardXfdFileName()); if (retVal == 0) { retVal = ObjectUtils.compare(getSubAwardNumber(), o.getSubAwardNumber()); }//from w w w. ja v a 2 s . co m } } } return retVal; }
From source file:org.kuali.rice.kew.docsearch.SearchableAttributeStringValue.java
@Override public Boolean isRangeValid(String lowerValue, String upperValue, boolean caseSensitive) { if (allowsRangeSearches()) { return StringUtils.isBlank(lowerValue) || StringUtils.isBlank(upperValue) || (caseSensitive ? ObjectUtils.compare(lowerValue, upperValue) <= 0 : String.CASE_INSENSITIVE_ORDER.compare(lowerValue, upperValue) <= 0); }/*from w ww.jav a2s. c o m*/ return null; }
From source file:org.kuali.rice.kew.xml.export.RuleXmlExporter.java
private void exportRuleExtensionValues(Element parent, List<RuleExtensionValue> extensionValues) { if (!extensionValues.isEmpty()) { List<RuleExtensionValue> sorted = new ArrayList<RuleExtensionValue>(extensionValues); // establish deterministic ordering of keys Collections.sort(sorted, new Comparator<RuleExtensionValue>() { @Override// w ww .j a v a 2 s . c o m public int compare(RuleExtensionValue o1, RuleExtensionValue o2) { if (o1 == null) return -1; if (o2 == null) return 1; return ObjectUtils.compare(o1.getKey(), o2.getKey()); } }); Element extValuesElement = renderer.renderElement(parent, RULE_EXTENSION_VALUES); for (Iterator iterator = sorted.iterator(); iterator.hasNext();) { RuleExtensionValue extensionValue = (RuleExtensionValue) iterator.next(); Element extValueElement = renderer.renderElement(extValuesElement, RULE_EXTENSION_VALUE); renderer.renderTextElement(extValueElement, KEY, extensionValue.getKey()); renderer.renderTextElement(extValueElement, VALUE, extensionValue.getValue()); } } }
From source file:org.opencastproject.adminui.endpoint.AclEndpoint.java
@GET @Path("acls.json") @Produces(MediaType.APPLICATION_JSON)/*w ww .ja v a 2 s . c o m*/ @RestQuery(name = "allaclasjson", description = "Returns a list of acls", returnDescription = "Returns a JSON representation of the list of acls available the current user's organization", restParameters = { @RestParameter(name = "filter", isRequired = false, description = "The filter used for the query. They should be formated like that: 'filter1:value1,filter2:value2'", type = STRING), @RestParameter(name = "sort", isRequired = false, description = "The sort order. May include any of the following: NAME. Add '_DESC' to reverse the sort order (e.g. NAME_DESC).", type = STRING), @RestParameter(defaultValue = "100", description = "The maximum number of items to return per page.", isRequired = false, name = "limit", type = RestParameter.Type.STRING), @RestParameter(defaultValue = "0", description = "The page number.", isRequired = false, name = "offset", type = RestParameter.Type.STRING) }, reponses = { @RestResponse(responseCode = SC_OK, description = "The list of ACL's has successfully been returned") }) public Response getAclsAsJson(@QueryParam("filter") String filter, @QueryParam("sort") String sort, @QueryParam("offset") int offset, @QueryParam("limit") int limit) throws IOException { if (limit < 1) limit = 100; Opt<String> optSort = Opt.nul(trimToNull(sort)); Map<String, String> filters = RestUtils.parseFilter(filter); for (String name : filters.keySet()) { // TODO logger.debug("Acl filter name: {}", name); logger.debug("Acl filter value: {}", filters.get(name)); } // Filter acls by filter criteria List<ManagedAcl> filteredAcls = new ArrayList<ManagedAcl>(); for (ManagedAcl acl : aclService().getAcls()) { // Filter acl // if ((filterName.isSome() && !filterName.get().equals(agent.getName())) // || (filterStatus.isSome() && !filterStatus.get().equals(agent.getState())) // || (filterLastUpdated.isSome() && filterLastUpdated.get() != agent.getLastHeardFrom())) // continue; filteredAcls.add(acl); } int total = filteredAcls.size(); // Sort by name, description or role if (optSort.isSome()) { final Set<SortCriterion> sortCriteria = RestUtils.parseSortQueryParameter(optSort.get()); Collections.sort(filteredAcls, new Comparator<ManagedAcl>() { @Override public int compare(ManagedAcl acl1, ManagedAcl acl2) { for (SortCriterion criterion : sortCriteria) { Order order = criterion.getOrder(); switch (criterion.getFieldName()) { case "name": if (order.equals(Order.Descending)) return ObjectUtils.compare(acl2.getName(), acl1.getName()); return ObjectUtils.compare(acl1.getName(), acl2.getName()); default: logger.info("Unkown sort type: {}", criterion.getFieldName()); return 0; } } return 0; } }); } // Apply Limit and offset List<JValue> aclJSON = Stream.$(filteredAcls).drop(offset) .apply(limit > 0 ? StreamOp.<ManagedAcl>id().take(limit) : StreamOp.<ManagedAcl>id()) .map(fullManagedAcl).toList(); return okJsonList(aclJSON, offset, limit, total); }
From source file:org.opencastproject.adminui.endpoint.GroupsEndpoint.java
@GET @Produces(MediaType.APPLICATION_JSON)//from ww w.j av a2 s . com @Path("groups.json") @RestQuery(name = "allgroupsasjson", description = "Returns a list of groups", returnDescription = "Returns a JSON representation of the list of groups available the current user's organization", restParameters = { @RestParameter(name = "filter", isRequired = false, description = "The filter used for the query. They should be formated like that: 'filter1:value1,filter2:value2'", type = STRING), @RestParameter(name = "sort", isRequired = false, description = "The sort order. May include any of the following: NAME, DESCRIPTION OR ROLE. Add '_DESC' to reverse the sort order (e.g. NAME_DESC).", type = STRING), @RestParameter(defaultValue = "100", description = "The maximum number of items to return per page.", isRequired = false, name = "limit", type = RestParameter.Type.STRING), @RestParameter(defaultValue = "0", description = "The page number.", isRequired = false, name = "offset", type = RestParameter.Type.STRING) }, reponses = { @RestResponse(responseCode = SC_OK, description = "The groups.") }) public Response getGroupsAsJson(@QueryParam("filter") String filter, @QueryParam("sort") String sort, @QueryParam("offset") int offset, @QueryParam("limit") int limit) throws IOException { if (limit < 1) limit = 100; Option<String> optSort = Option.option(trimToNull(sort)); Map<String, String> filters = RestUtils.parseFilter(filter); for (String name : filters.keySet()) { // TODO logger.debug("Groups filter name: {}", name); logger.debug("Groups filter value: {}", filters.get(name)); } // Filter agents by filter criteria List<Group> filteredGroups = new ArrayList<Group>(); for (Iterator<Group> groupIterator = jpaGroupRoleProvider.getGroups(); groupIterator.hasNext();) { Group group = groupIterator.next(); // // Filter list // if ((filterName.isSome() && !filterName.get().equals(agent.getName())) // || (filterStatus.isSome() && !filterStatus.get().equals(agent.getState())) // || (filterLastUpdated.isSome() && filterLastUpdated.get() != agent.getLastHeardFrom())) // continue; filteredGroups.add(group); } int total = filteredGroups.size(); // Sort by name, description or role if (optSort.isSome()) { final Set<SortCriterion> sortCriteria = RestUtils.parseSortQueryParameter(optSort.get()); Collections.sort(filteredGroups, new Comparator<Group>() { @Override public int compare(Group group1, Group group2) { for (SortCriterion criterion : sortCriteria) { Order order = criterion.getOrder(); switch (criterion.getFieldName()) { case "name": if (order.equals(Order.Descending)) return ObjectUtils.compare(group2.getName(), group1.getName()); return ObjectUtils.compare(group1.getName(), group2.getName()); case "description": if (order.equals(Order.Descending)) return ObjectUtils.compare(group2.getDescription(), group1.getDescription()); return ObjectUtils.compare(group1.getDescription(), group2.getDescription()); case "role": if (order.equals(Order.Descending)) return ObjectUtils.compare(group2.getRole(), group1.getRole()); return ObjectUtils.compare(group1.getRole(), group2.getRole()); default: logger.info("Unkown sort type: {}", criterion.getFieldName()); return 0; } } return 0; } }); } // Apply Limit and offset filteredGroups = new SmartIterator<Group>(limit, offset).applyLimitAndOffset(filteredGroups); List<JValue> groupsJSON = new ArrayList<JValue>(); for (Group group : filteredGroups) { List<JField> fields = new ArrayList<JField>(); fields.add(f("id", v(group.getGroupId()))); fields.add(f("name", vN(group.getName()))); fields.add(f("description", vN(group.getDescription()))); fields.add(f("role", v(group.getRole()))); fields.add(f("users", membersToJSON(group.getMembers()))); groupsJSON.add(j(fields)); } return okJsonList(groupsJSON, offset, limit, total); }
From source file:org.opencastproject.adminui.endpoint.UsersEndpoint.java
@GET @Path("users.json") @Produces(MediaType.APPLICATION_JSON)/* w ww . j a v a 2 s .c o m*/ @RestQuery(name = "allusers", description = "Returns a list of users", returnDescription = "Returns a JSON representation of the list of user accounts", restParameters = { @RestParameter(name = "filter", isRequired = false, description = "The filter used for the query. They should be formated like that: 'filter1:value1,filter2:value2'", type = STRING), @RestParameter(name = "sort", isRequired = false, description = "The sort order. May include any of the following: STATUS, NAME OR LAST_UPDATED. Add '_DESC' to reverse the sort order (e.g. STATUS_DESC).", type = STRING), @RestParameter(defaultValue = "100", description = "The maximum number of items to return per page.", isRequired = false, name = "limit", type = RestParameter.Type.STRING), @RestParameter(defaultValue = "0", description = "The page number.", isRequired = false, name = "offset", type = RestParameter.Type.STRING) }, reponses = { @RestResponse(responseCode = SC_OK, description = "The user accounts.") }) public Response getUsers(@QueryParam("filter") String filter, @QueryParam("sort") String sort, @QueryParam("limit") int limit, @QueryParam("offset") int offset) throws IOException { if (limit < 1) limit = 100; Option<String> optSort = Option.option(trimToNull(sort)); Option<String> filterName = Option.none(); Option<String> filterRole = Option.none(); Option<String> filterProvider = Option.none(); Map<String, String> filters = RestUtils.parseFilter(filter); for (String name : filters.keySet()) { if (UsersListQuery.FILTER_NAME_NAME.equals(name)) filterName = Option.some(filters.get(name)); if (UsersListQuery.FILTER_ROLE_NAME.equals(name)) filterRole = Option.some(filters.get(name)); if (UsersListQuery.FILTER_PROVIDER_NAME.equals(name)) { filterProvider = Option.some(filters.get(name)); } } // Filter agents by filter criteria List<User> filteredUsers = new ArrayList<User>(); for (Iterator<User> i = userDirectoryService.getUsers(); i.hasNext();) { User user = i.next(); // Filter list boolean mismatchName = filterName.isSome() && !filterName.get().equals(user.getName()); boolean mismatchRole = filterRole.isSome() && !Stream.$(user.getRoles()).map(getRoleName).toSet().contains(filterRole.get()); boolean mismatchProvider = filterProvider.isSome() && !filterProvider.get().equals(user.getProvider()); if (mismatchName || mismatchRole || mismatchProvider) continue; filteredUsers.add(user); } int total = filteredUsers.size(); // Sort by name, description or role if (optSort.isSome()) { final Set<SortCriterion> sortCriteria = RestUtils.parseSortQueryParameter(optSort.get()); Collections.sort(filteredUsers, new Comparator<User>() { @Override public int compare(User user1, User user2) { for (SortCriterion criterion : sortCriteria) { Order order = criterion.getOrder(); switch (criterion.getFieldName()) { case "name": if (order.equals(Order.Descending)) return ObjectUtils.compare(user2.getName(), user1.getName()); return ObjectUtils.compare(user1.getName(), user2.getName()); case "username": if (order.equals(Order.Descending)) return ObjectUtils.compare(user2.getUsername(), user1.getUsername()); return ObjectUtils.compare(user1.getUsername(), user2.getUsername()); case "email": if (order.equals(Order.Descending)) return ObjectUtils.compare(user2.getEmail(), user1.getEmail()); return ObjectUtils.compare(user1.getEmail(), user2.getEmail()); case "roles": String roles1 = Stream.$(user1.getRoles()).map(getRoleName).sort(sortByName) .mkString(","); String roles2 = Stream.$(user2.getRoles()).map(getRoleName).sort(sortByName) .mkString(","); if (order.equals(Order.Descending)) return ObjectUtils.compare(roles2, roles1); return ObjectUtils.compare(roles1, roles2); case "provider": if (order.equals(Order.Descending)) return ObjectUtils.compare(user2.getProvider(), user1.getProvider()); return ObjectUtils.compare(user1.getProvider(), user2.getProvider()); default: logger.info("Unkown sort type: {}", criterion.getFieldName()); return 0; } } return 0; } }); } // Apply Limit and offset filteredUsers = new SmartIterator<User>(limit, offset).applyLimitAndOffset(filteredUsers); List<JValue> usersJSON = new ArrayList<JValue>(); for (User user : filteredUsers) { List<Blacklist> blacklist = new ArrayList<Blacklist>(); Person person = null; if (participationPersistence != null) { try { person = participationPersistence.getPerson(user.getEmail()); blacklist.addAll(participationPersistence.findBlacklists(person)); } catch (ParticipationManagementDatabaseException e) { logger.warn("Not able to find the blacklist for the user {}: {}", user.getEmail(), e); return Response.status(SC_INTERNAL_SERVER_ERROR).build(); } catch (NotFoundException e) { logger.debug("Not able to find the person with the email address {}.", user.getEmail()); } } usersJSON.add(generateJsonUser(user, Option.option(person), blacklist)); } return okJsonList(usersJSON, offset, limit, total); }
From source file:org.openehr.designer.repository.file.FileTemplateRepository.java
@Override public List<TemplateInfo> listTemplates() { List<TemplateInfo> result = templateMap.entrySet().stream().map(e -> { Archetype template = e.getValue().get(0); ArchetypeWrapper wrapper = new ArchetypeWrapper(template); String templateId = e.getKey(); String rmType = template.getDefinition().getRmTypeName(); String name = wrapper.getTermText(template.getDefinition().getNodeId()); return new TemplateInfo(templateId, rmType, name); }).collect(Collectors.toList()); result.sort((t, o) -> ObjectUtils.compare(t.getName(), o.getName())); return result; }
From source file:org.openehr.designer.repository.TemplateInfo.java
@Override public int compareTo(TemplateInfo o) { return ObjectUtils.compare(getName(), o.getName()); }
From source file:org.openhab.binding.dwdunwetter.internal.data.SeverityComparator.java
@Override public int compare(DwdWarningData o1, DwdWarningData o2) { Comparator.comparingInt(d -> ((DwdWarningData) d).getSeverity().getOrder()); Comparator.comparing(DwdWarningData::getOnset); int result = Integer.compare(o1.getSeverity().getOrder(), o2.getSeverity().getOrder()); if (result == 0) { result = ObjectUtils.compare(o1.getOnset(), o2.getOnset()); }/* www .ja v a 2s . c o m*/ return result; }