Example usage for org.apache.commons.lang ObjectUtils compare

List of usage examples for org.apache.commons.lang ObjectUtils compare

Introduction

In this page you can find the example usage for org.apache.commons.lang ObjectUtils compare.

Prototype

public static <T extends Comparable<? super T>> int compare(T c1, T c2) 

Source Link

Document

Null safe comparison of Comparables.

Usage

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;
}