List of usage examples for org.apache.commons.lang3.builder CompareToBuilder append
public CompareToBuilder append(final Object[] lhs, final Object[] rhs, final Comparator<?> comparator)
Appends to the builder
the deep comparison of two Object
arrays.
==
null
, null
is less than non-null
This method will also will be called for the top level of multi-dimensional, ragged, and multi-typed arrays.
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 ava 2 s . c om*/ 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 w w w . ja v a 2 s .co m 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.kuali.coeus.common.notification.impl.lookup.keyvalue.KeyLabelSortByValue.java
@Override public int compareTo(KeyValue o) { if (o == null) { throw new NullPointerException("the object to compare to is null"); }//from w w w . jav a 2 s . c o m CompareToBuilder builder = new CompareToBuilder(); builder.append(this.getValue(), o.getValue(), String.CASE_INSENSITIVE_ORDER); if ((this.getKey() instanceof String) && (o.getKey() instanceof String)) builder.append(this.getKey(), o.getKey(), String.CASE_INSENSITIVE_ORDER); else { builder.append(this.getKey(), o.getKey()); } return builder.toComparison(); }