private Map<List<Object>, ConstraintMatch> createConstraintMatchMap( Collection<ConstraintMatchTotal> constraintMatchTotals) { Map<List<Object>, ConstraintMatch> constraintMatchMap = new LinkedHashMap<List<Object>, ConstraintMatch>(constraintMatchTotals.size() * 16); for (ConstraintMatchTotal constraintMatchTotal : constraintMatchTotals) { for (ConstraintMatch constraintMatch : constraintMatchTotal.getConstraintMatchSet()) { ConstraintMatch previousConstraintMatch = constraintMatchMap.put( Arrays.<Object>asList( constraintMatchTotal.getConstraintPackage(), constraintMatchTotal.getConstraintName(), constraintMatchTotal.getScoreLevel(), constraintMatch.getJustificationList(), constraintMatch.getWeightAsNumber()), constraintMatch); if (previousConstraintMatch != null) { throw new IllegalStateException( "Score corruption because the constraintMatch (" + constraintMatch + ") was added twice for constraintMatchTotal (" + constraintMatchTotal + ") without removal."); } } } return constraintMatchMap; }
public String buildConstraintMatchSetText(ConstraintMatchTotal constraintMatchTotal) { Set<? extends ConstraintMatch> constraintMatchSet = constraintMatchTotal.getConstraintMatchSet(); StringBuilder text = new StringBuilder(constraintMatchSet.size() * 80); for (ConstraintMatch constraintMatch : constraintMatchSet) { text.append(constraintMatch.toString()).append("\n"); } return text.toString(); }