// проверка условного перехода public void checkDecision(DecisionNode decision, ADNodesList.ADNode node) { // добавляем вопрос для перехода BaseNode flowIn = diagramElements.get(decision.getInId(0)); string quest = ((ControlFlow)flowIn).getText(); decision.setQuestion(quest.Trim()); // добавляем альтернативы -> проходим по всем выходящим переходам и получаем подписи for (int i = 0; i < decision.outSize(); i++) { BaseNode flow = diagramElements.get(decision.getOutId(i)); decision.addAlternative(((ControlFlow)flow).getText()); } // проверяем подписи альтернатив, если их больше одной bool checkAlt = decision.alternativeSize() >= 2; // поиск совпадающих названий if (checkAlt) { decision.findEqualAlternatives().ForEach(x => ADMistakeFactory.createMistake(Level.HARD, MistakeAdapter.toString(MISTAKES.REPEATED_ALT) + " - " + x, node, ALL_MISTAKES.REPEATED_ALT)); } // проверка на альтернативу без подписи if (checkAlt) { if (decision.findEmptyAlternative()) { ADMistakeFactory.createMistake(Level.HARD, MistakeAdapter.toString(MISTAKES.HAVE_EMPTY_ALT), node, ALL_MISTAKES.HAVE_EMPTY_ALT); } } // проверка, что альтернативы начинаются с заглавных букв //if (checkAlt) // for (int i = 0; i < decision.alternativeSize(); i++) // { // String alter = decision.getAlternative(i); // if (!alter.Equals("")) // if (!alter.Substring(0, 1).ToUpper().Equals(alter.Substring(0, 1))) // ADMistakeFactory.createMistake(Level.EASY, " альтернатива \"" + alter + "\"" + MistakeAdapter.toString(MISTAKES.SMALL_LETTER), node); // } bool checkQuest = true; // проверка, что имеется условие if (decision.getQuestion().Equals("")) { ADMistakeFactory.createMistake(Level.HARD, MistakeAdapter.toString(MISTAKES.HAVE_NOT_QUEST), node, ALL_MISTAKES.HAVE_NOT_QUEST); checkQuest = false; // дальнейшие проверки условия не требуются (его нет) } // проверка на заглавную букву if (checkQuest) { if ((!decision.getQuestion().Substring(0, 1).ToUpper().Equals(decision.getQuestion().Substring(0, 1)))) { ADMistakeFactory.createMistake(Level.EASY, MistakeAdapter.toString(MISTAKES.SMALL_LETTER), node, ALL_MISTAKES.SMALL_LETTER); } } // заканчивается на знак вопроса if (checkQuest) { if ((!decision.getQuestion().EndsWith("?"))) { ADMistakeFactory.createMistake(Level.EASY, MistakeAdapter.toString(MISTAKES.END_WITH_QUEST), node, ALL_MISTAKES.END_WITH_QUEST); } } }