// проверка перехода
        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);
                }
            }
        }
예제 #2
0
 /**
  * Найти элементы для связи
  * @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);       // обратная связь
     }
 }