// проверка перехода public void checkFlow(ControlFlow flow) { bool notCondButHaveMark = false; bool isCond = false; // если это не условие, проверяем подпись if (diagramElements.get(flow.getTarget()).getType() != ElementType.DECISION) { if (!flow.getText().Equals("")) { notCondButHaveMark = true; } } else { isCond = true; } if (diagramElements.get(flow.getSrc()).getType() != ElementType.DECISION) { if (!flow.getText().Equals("")) { if (!isCond) { ADMistakeFactory.createMistake(Level.HARD, MistakeAdapter.toString(MISTAKES.HAVE_MARK) + " - \"" + flow.getText() + "\"", flow, ALL_MISTAKES.HAVE_MARK); } } else if (notCondButHaveMark) { ADMistakeFactory.createMistake(Level.HARD, MistakeAdapter.toString(MISTAKES.HAVE_MARK) + " - \"" + flow.getText() + "\"", flow, ALL_MISTAKES.HAVE_MARK); } } }
/** * Найти элементы для связи * @param cur текущий элемент, кот надо связать * @param curNode */ private void findNext(DiagramElement cur, ADNode curNode) { // для всех выходный переходов находим таргеты и добавляем ссылки в текущий элемент на таргеты for (int i = 0; i < cur.outSize(); i++) { ControlFlow flow = (ControlFlow)get(cur.getOutId(i)); ADNode target = getNode(flow.getTarget()); curNode.next.Add(target); // прямая связь target.prev.Add(curNode); // обратная связь } }