Example usage for org.apache.commons.lang3.builder CompareToBuilder CompareToBuilder

List of usage examples for org.apache.commons.lang3.builder CompareToBuilder CompareToBuilder

Introduction

In this page you can find the example usage for org.apache.commons.lang3.builder CompareToBuilder CompareToBuilder.

Prototype

public CompareToBuilder() 

Source Link

Document

Constructor for CompareToBuilder.

Starts off assuming that the objects are equal.

Usage

From source file:org.broadleafcommerce.cms.web.processor.ContentProcessor.java

@Override
protected void modifyModelAttributes(final Arguments arguments, Element element) {
    String contentType = element.getAttributeValue("contentType");
    String contentName = element.getAttributeValue("contentName");
    String maxResultsStr = element.getAttributeValue("maxResults");

    if (StringUtils.isEmpty(contentType) && StringUtils.isEmpty(contentName)) {
        throw new IllegalArgumentException(
                "The content processor must have a non-empty attribute value for 'contentType' or 'contentName'");
    }/* w  w  w  .  j  a  v  a2s  .co  m*/

    Integer maxResults = null;
    if (maxResultsStr != null) {
        maxResults = Ints.tryParse(maxResultsStr);
    }
    if (maxResults == null) {
        maxResults = Integer.MAX_VALUE;
    }

    String contentListVar = getAttributeValue(element, "contentListVar", "contentList");
    String contentItemVar = getAttributeValue(element, "contentItemVar", "contentItem");
    String numResultsVar = getAttributeValue(element, "numResultsVar", "numResults");

    String fieldFilters = element.getAttributeValue("fieldFilters");
    final String sorts = element.getAttributeValue("sorts");

    IWebContext context = (IWebContext) arguments.getContext();
    HttpServletRequest request = context.getHttpServletRequest();
    BroadleafRequestContext blcContext = BroadleafRequestContext.getBroadleafRequestContext();

    Map<String, Object> mvelParameters = buildMvelParameters(request, arguments, element);
    SandBox currentSandbox = blcContext.getSandBox();

    List<StructuredContentDTO> contentItems;
    StructuredContentType structuredContentType = null;
    if (contentType != null) {
        structuredContentType = structuredContentService.findStructuredContentTypeByName(contentType);
    }

    Locale locale = blcContext.getLocale();

    contentItems = getContentItems(contentName, maxResults, request, mvelParameters, currentSandbox,
            structuredContentType, locale, arguments, element);

    if (contentItems.size() > 0) {

        // sort the resulting list by the configured property sorts on the tag
        if (StringUtils.isNotEmpty(sorts)) {
            Collections.sort(contentItems, new Comparator<StructuredContentDTO>() {
                @Override
                public int compare(StructuredContentDTO o1, StructuredContentDTO o2) {
                    AssignationSequence sortAssignments = AssignationUtils
                            .parseAssignationSequence(arguments.getConfiguration(), arguments, sorts, false);
                    CompareToBuilder compareBuilder = new CompareToBuilder();
                    for (Assignation sortAssignment : sortAssignments) {
                        String property = sortAssignment.getLeft().getStringRepresentation();

                        Object val1 = o1.getPropertyValue(property);
                        Object val2 = o2.getPropertyValue(property);

                        if (sortAssignment.getRight().execute(arguments.getConfiguration(), arguments)
                                .equals("ASCENDING")) {
                            compareBuilder.append(val1, val2);
                        } else {
                            compareBuilder.append(val2, val1);
                        }
                    }
                    return compareBuilder.toComparison();
                }
            });
        }

        List<Map<String, Object>> contentItemFields = new ArrayList<Map<String, Object>>();

        for (StructuredContentDTO item : contentItems) {
            if (StringUtils.isNotEmpty(fieldFilters)) {
                AssignationSequence assignments = AssignationUtils
                        .parseAssignationSequence(arguments.getConfiguration(), arguments, fieldFilters, false);
                boolean valid = true;
                for (Assignation assignment : assignments) {

                    if (ObjectUtils.notEqual(
                            assignment.getRight().execute(arguments.getConfiguration(), arguments),
                            item.getValues().get(assignment.getLeft().getStringRepresentation()))) {
                        LOG.info("Excluding content " + item.getId() + " based on the property value of "
                                + assignment.getLeft().getStringRepresentation());
                        valid = false;
                        break;
                    }
                }
                if (valid) {
                    contentItemFields.add(item.getValues());
                }
            } else {
                contentItemFields.add(item.getValues());
            }
        }

        Map<String, Object> contentItem = null;
        if (contentItemFields.size() > 0) {
            contentItem = contentItemFields.get(0);
        }

        addToModel(arguments, contentItemVar, contentItem);
        addToModel(arguments, contentListVar, contentItemFields);
        addToModel(arguments, numResultsVar, contentItems.size());
    } else {
        if (LOG.isInfoEnabled()) {
            LOG.info("**************************The contentItems is null*************************");
        }
        addToModel(arguments, contentItemVar, null);
        addToModel(arguments, contentListVar, null);
        addToModel(arguments, numResultsVar, 0);
    }

    String deepLinksVar = element.getAttributeValue("deepLinks");
    if (StringUtils.isNotBlank(deepLinksVar) && contentItems.size() > 0) {
        List<DeepLink> links = contentDeepLinkService.getLinks(contentItems.get(0));
        extensionManager.getProxy().addExtensionFieldDeepLink(links, arguments, element);
        extensionManager.getProxy().postProcessDeepLinks(links);
        addToModel(arguments, deepLinksVar, links);
    }
}

From source file:org.broadleafcommerce.openadmin.server.service.persistence.PersistenceManagerImpl.java

@Override
public ClassMetadata getMergedClassMetadata(final Class<?>[] entities,
        Map<MergedPropertyType, Map<String, FieldMetadata>> mergedProperties) {
    ClassMetadata classMetadata = new ClassMetadata();
    classMetadata.setPolymorphicEntities(dynamicEntityDao.getClassTree(entities));

    List<Property> propertiesList = new ArrayList<Property>();
    for (PersistenceModule module : modules) {
        module.extractProperties(entities, mergedProperties, propertiesList);
    }//from  ww w.  j a  v a  2 s  .c o  m

    Property[] properties = new Property[propertiesList.size()];
    properties = propertiesList.toArray(properties);
    Arrays.sort(properties, new Comparator<Property>() {
        @Override
        public int compare(Property o1, Property o2) {
            Integer tabOrder1 = o1.getMetadata().getTabOrder() == null ? 99999 : o1.getMetadata().getTabOrder();
            Integer tabOrder2 = o2.getMetadata().getTabOrder() == null ? 99999 : o2.getMetadata().getTabOrder();

            Integer groupOrder1 = null;
            Integer groupOrder2 = null;
            if (o1.getMetadata() instanceof BasicFieldMetadata) {
                BasicFieldMetadata b1 = (BasicFieldMetadata) o1.getMetadata();
                groupOrder1 = b1.getGroupOrder();
            }
            groupOrder1 = groupOrder1 == null ? 99999 : groupOrder1;

            if (o2.getMetadata() instanceof BasicFieldMetadata) {
                BasicFieldMetadata b2 = (BasicFieldMetadata) o2.getMetadata();
                groupOrder2 = b2.getGroupOrder();
            }
            groupOrder2 = groupOrder2 == null ? 99999 : groupOrder2;

            Integer fieldOrder1 = o1.getMetadata().getOrder() == null ? 99999 : o1.getMetadata().getOrder();
            Integer fieldOrder2 = o2.getMetadata().getOrder() == null ? 99999 : o2.getMetadata().getOrder();

            String friendlyName1 = o1.getMetadata().getFriendlyName() == null ? "zzzz"
                    : o1.getMetadata().getFriendlyName();
            String friendlyName2 = o2.getMetadata().getFriendlyName() == null ? "zzzz"
                    : o2.getMetadata().getFriendlyName();

            String name1 = o1.getName() == null ? "zzzzz" : o1.getName();
            String name2 = o2.getName() == null ? "zzzzz" : o2.getName();

            return new CompareToBuilder().append(tabOrder1, tabOrder2).append(groupOrder1, groupOrder2)
                    .append(fieldOrder1, fieldOrder2).append(friendlyName1, friendlyName2).append(name1, name2)
                    .toComparison();
        }
    });
    classMetadata.setProperties(properties);
    classMetadata.setCurrencyCode(Money.defaultCurrency().getCurrencyCode());

    return classMetadata;
}

From source file:org.egov.commons.Installment.java

@Override
public int compareTo(final Installment inst) {
    return new CompareToBuilder().append(fromDate, inst.getFromDate()).append(id, inst.getId())
            .append(installmentYear, inst.getInstallmentYear())
            .append(installmentNumber, inst.getInstallmentNumber())
            .append(installmentType, inst.getInstallmentType())
            .append(module.getName(), inst.getModule().getName()).append(toDate, inst.getToDate()).build();
}

From source file:org.flowable.dmn.engine.impl.hitpolicy.HitPolicyOutputOrder.java

@Override
public void composeDecisionResults(final ELExecutionContext executionContext) {
    List<Map<String, Object>> ruleResults = new ArrayList<>(executionContext.getRuleResults().values());

    boolean outputValuesPresent = false;
    for (Map.Entry<String, List<Object>> entry : executionContext.getOutputValues().entrySet()) {
        List<Object> outputValues = entry.getValue();
        if (outputValues != null && !outputValues.isEmpty()) {
            outputValuesPresent = true;//from   w  w w .j a  v a  2 s.co  m
            break;
        }
    }

    if (!outputValuesPresent) {
        if (CommandContextUtil.getDmnEngineConfiguration().isStrictMode()) {
            throw new FlowableException(
                    String.format("HitPolicy: %s; no output values present", getHitPolicyName()));
        }
    }

    // sort on predefined list(s) of output values
    Collections.sort(ruleResults, new Comparator<Map<String, Object>>() {

        @Override
        public int compare(Map<String, Object> o1, Map<String, Object> o2) {

            CompareToBuilder compareToBuilder = new CompareToBuilder();
            for (Map.Entry<String, List<Object>> entry : executionContext.getOutputValues().entrySet()) {
                List<Object> outputValues = entry.getValue();
                if (outputValues != null && !outputValues.isEmpty()) {
                    compareToBuilder.append(o1.get(entry.getKey()), o2.get(entry.getKey()),
                            new OutputOrderComparator<>(
                                    outputValues.toArray(new Comparable[outputValues.size()])));
                    compareToBuilder.toComparison();
                }
            }

            return compareToBuilder.toComparison();
        }
    });

    executionContext.getAuditContainer().setDecisionResult(ruleResults);
}

From source file:org.flowable.dmn.engine.impl.hitpolicy.HitPolicyPriority.java

@Override
public void composeDecisionResults(final ELExecutionContext executionContext) {

    List<Map<String, Object>> ruleResults = new ArrayList<>(executionContext.getRuleResults().values());

    // sort on predefined list(s) of output values
    Collections.sort(ruleResults, new Comparator<Object>() {
        boolean noOutputValuesPresent = true;

        @SuppressWarnings("unchecked")
        @Override//from ww w . j a va  2s  .  com
        public int compare(Object o1, Object o2) {
            CompareToBuilder compareToBuilder = new CompareToBuilder();
            for (Map.Entry<String, List<Object>> entry : executionContext.getOutputValues().entrySet()) {
                List<Object> outputValues = entry.getValue();
                if (outputValues != null || !outputValues.isEmpty()) {
                    noOutputValuesPresent = false;
                    compareToBuilder.append(((Map<String, Object>) o1).get(entry.getKey()),
                            ((Map<String, Object>) o2).get(entry.getKey()), new OutputOrderComparator<>(
                                    outputValues.toArray(new Comparable[outputValues.size()])));
                }
            }

            if (!noOutputValuesPresent) {
                return compareToBuilder.toComparison();

            } else {
                if (CommandContextUtil.getDmnEngineConfiguration().isStrictMode()) {
                    throw new FlowableException(
                            String.format("HitPolicy: %s; no output values present", getHitPolicyName()));
                }

                return 0;
            }
        }
    });

    executionContext.getAuditContainer().addDecisionResultObject(ruleResults.get(0));
}

From source file:org.gbif.dwca.model.Vocabulary.java

/**
 * @see java.lang.Comparable#compareTo(Object)
 *//*from   w w  w.ja  v a 2  s.  c om*/
public int compareTo(Object object) {
    Vocabulary myClass = (Vocabulary) object;
    return new CompareToBuilder().append(this.uri, myClass.uri).toComparison();
}

From source file:org.gbif.dwca.model.VocabularyConcept.java

/**
 * @see java.lang.Comparable#compareTo(Object)
 *///from   w w w  . j a v  a  2  s.c  o  m
public int compareTo(Object object) {
    VocabularyConcept myClass = (VocabularyConcept) object;
    return new CompareToBuilder().append(this.vocabulary, myClass.vocabulary).append(this.order, myClass.order)
            .append(this.uri, myClass.uri).toComparison();
}

From source file:org.gbif.ipt.model.Vocabulary.java

public int compareTo(Object object) {
    Vocabulary myClass = (Vocabulary) object;
    return new CompareToBuilder().append(this.uriString, myClass.uriString).toComparison();
}

From source file:org.gbif.ipt.model.VocabularyConcept.java

public int compareTo(Object object) {
    VocabularyConcept myClass = (VocabularyConcept) object;
    return new CompareToBuilder().append(this.vocabulary, myClass.vocabulary).append(this.order, myClass.order)
            .append(this.uri, myClass.uri).toComparison();
}

From source file:org.jasig.cas.services.AbstractRegisteredService.java

/**
 * {@inheritDoc}//from  w ww  .java2 s  .  com
 * Compares this instance with the <code>other</code> registered service based on
 * evaluation order, name. The name comparison is case insensitive.
 *
 * @see #getEvaluationOrder()
 */
@Override
public int compareTo(final RegisteredService other) {
    return new CompareToBuilder().append(this.getEvaluationOrder(), other.getEvaluationOrder())
            .append(this.getName().toLowerCase(), other.getName().toLowerCase())
            .append(this.getServiceId(), other.getServiceId()).toComparison();
}