private int calculateInternalScore(OutPutScreen outPutScreen) {

    int internalScore = 0;

    if (outPutScreen.isNoRenforcement()
        && !outPutScreen.isJtrForSideOne()
        && !outPutScreen.isJtrForSideTwo()) {
      return internalScore;
    } else {

      if (outPutScreen.isInternalBothSide()) {
        internalScore = internalScore + 2;
      }
      if (outPutScreen.isJtrForSideOne()) {
        internalScore = internalScore + 2;
      }
      if (outPutScreen.isJtrForSideTwo()) {
        internalScore = internalScore + 2;
      }
      if (outPutScreen.isInternalReinforcement()) {
        internalScore = internalScore + 1;
      }
      if (outPutScreen.isIntAndExtEachSide()) {
        internalScore = internalScore + 1;
      }
      if (outPutScreen.isExtAndInternalEachSide()) {
        internalScore = internalScore + 1;
      }
    }

    return internalScore;
  }
  private int setPriority(OutPutScreen outPutScreen) {
    if (outPutScreen.isNoRenforcement()
        && !outPutScreen.isJtrForSideOne()
        && !outPutScreen.isJtrForSideTwo()) {
      return 0;
    } else {

      if (outPutScreen.isInternalBothSide()) {
        return 3;
      }
      if (outPutScreen.isJtrForSideOne()) {
        return 2;
      }
      if (outPutScreen.isJtrForSideTwo()) {
        return 2;
      }
      if (outPutScreen.isInternalReinforcement()) {
        return 1;
      }
      if (outPutScreen.isIntAndExtEachSide()) {
        return 5;
      }
      if (outPutScreen.isExtAndInternalEachSide()) {
        return 6;
      }

      if (outPutScreen.isExternalBothSide()) {

        return 4;
      }
      if (outPutScreen.isExternalReinforcement()) {
        return 2;
      }
      if (outPutScreen.isExtAndInternalEachSide()) {
        return 6;
      }
      if (outPutScreen.isIntAndExtEachSide()) {
        return 5;
      }
    }
    return 7;
  }
  private List<OutPutScreen> getOnlyInternalReinforcementOptions(List<OutPutScreen> outPutScreens) {

    List<OutPutScreen> outPutScreenForInternalReinforcementOnly = new ArrayList<OutPutScreen>();
    for (OutPutScreen outPutScreen : outPutScreens) {

      if (outPutScreen.isInternalReinforcement()
          || outPutScreen.isInternalBothSide()
          || outPutScreen.isJtrForSideOne()
          || outPutScreen.isJtrForSideTwo()) {
        outPutScreen.setScore(outPutScreen.getInternalScore());
        outPutScreenForInternalReinforcementOnly.add(outPutScreen);
      }
    }

    return outPutScreenForInternalReinforcementOnly;
  }