예제 #1
0
 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;
 }
 private void localSearchStepEnded(LocalSearchStepScope stepScope) {
   if (constraintMatchEnabled) {
     long timeMillisSpent = stepScope.getPhaseScope().calculateSolverTimeMillisSpent();
     for (ConstraintMatchTotal constraintMatchTotal :
         stepScope.getScoreDirector().getConstraintMatchTotals()) {
       pointList.add(
           new ConstraintMatchTotalStepScoreStatisticPoint(
               timeMillisSpent,
               constraintMatchTotal.getConstraintPackage(),
               constraintMatchTotal.getConstraintName(),
               constraintMatchTotal.getScoreLevel(),
               constraintMatchTotal.getConstraintMatchCount(),
               constraintMatchTotal.getWeightTotalAsNumber().doubleValue()));
     }
   }
 }
예제 #3
0
 @Override
 public Object getValueAt(int rowIndex, int columnIndex) {
   ConstraintMatchTotal constraintMatchTotal = constraintMatchTotalList.get(rowIndex);
   switch (columnIndex) {
     case 0:
       return constraintMatchTotal.getConstraintPackage();
     case 1:
       return constraintMatchTotal.getConstraintName();
     case 2:
       return constraintMatchTotal.getScoreLevel();
     case 3:
       return constraintMatchTotal.getConstraintMatchCount();
     case 4:
       return constraintMatchTotal.getWeightTotalAsNumber();
     default:
       throw new IllegalStateException("The columnIndex (" + columnIndex + ") is invalid.");
   }
 }