示例#1
0
  public static void processAssessment(AssessmentData currentAssessment) {
    FuzzyExpImpl expert = new FuzzyExpImpl();
    ExpertResult expertResult = expert.doAnalysis(currentAssessment);

    currentAssessment.setCategoryCriteria(expertResult.getCriteriaString());
    currentAssessment.setCrCriteria(expertResult.getCriteriaStringCR());
    currentAssessment.setEnCriteria(expertResult.getCriteriaStringEN());
    currentAssessment.setVuCriteria(expertResult.getCriteriaStringVU());

    if (expertResult.getResult() != null) {
      currentAssessment.setCategoryFuzzyResult(
          expertResult.getLeft() + "," + expertResult.getBest() + "," + expertResult.getRight());
      currentAssessment.setCategoryAbbreviation(expertResult.getAbbreviatedCategory());

      if (currentAssessment.isRegional()
          && currentAssessment.getDataMap().containsKey(CanonicalNames.RegionExpertQuestions)) {
        ArrayList<String> regionalExpString =
            (ArrayList<String>)
                currentAssessment.getDataMap().get(CanonicalNames.RegionExpertQuestions);
        String[] regionalExpData = regionalExpString.get(0).split(",");

        if (regionalExpData.length > 2) {
          String upDown = regionalExpData[0];
          String amount = regionalExpData[1];
          String category = currentAssessment.getCategoryAbbreviation();

          if (upDown.equals(RegionalExpertQuestions.UPGRADE)) {
            int amountUp = Integer.valueOf(amount);
            category = slideCategory(amountUp, category);
          } else if (upDown.equals(RegionalExpertQuestions.DOWNGRADE)) {
            int amountDown = Integer.valueOf(amount);
            category = slideCategory(-1 * amountDown, category);
          }

          currentAssessment.setCategoryAbbreviation(category);
        }
      } else {
        System.out.println("Couldn't find regional expert question data.");
      }

    } else {
      currentAssessment.setCategoryFuzzyResult("-1,-1,-1");
      currentAssessment.setCategoryAbbreviation("DD");
    }
  }