void UmlTransition::solveThem() { Q3ValueList<Transition>::Iterator iter; for (iter = All.begin(); iter != All.end(); ++iter) { Transition & transition = *iter; QMap<WrapperStr, UmlItem *>::Iterator isrc = UmlItem::All.find(transition.source); QMap<WrapperStr, UmlItem *>::Iterator itgt = UmlItem::All.find(transition.target); if ((isrc == UmlItem::All.end()) /*&& ((isrc = Outgoings.find(transition.id)) == Outgoings.end())*/) { if (!FileIn::isBypassedId(transition.source)) UmlCom::trace("transition '" + transition.id + "' : unknown source reference '" + transition.source + "'<br>"); } else if ((itgt == UmlItem::All.end()) /*&& ((itgt = Incomings.find(transition.id)) == Incomings.end())*/) { if (!FileIn::isBypassedId(transition.target)) UmlCom::trace("transition '" + transition.id + "' : unknown target reference '" + transition.target + "'<br>"); } else { UmlTransition * t = UmlTransition::create(*isrc, *itgt); if (t == 0) UmlCom::trace("cannot create transition '" + transition.id + "'<br>"); else { UmlItem::All.insert(transition.id, t); if (! transition.name.isEmpty()) t->set_Name(transition.name); if (! transition.effect.isEmpty()) t->set_Activity(transition.effect); if (! transition.trigger.isEmpty()) t->set_Trigger(transition.trigger); else if (! transition.triggerRef.isEmpty()) { WrapperStr trig = Trigger::get(transition.triggerRef); if (!trig.isNull()) t->set_Trigger(trig); else if (!FileIn::isBypassedId(transition.triggerRef)) UmlCom::trace("transition '" + transition.id + "' : unknown trigger reference '" + transition.triggerRef + "'<br>"); } if (! transition.guard.isEmpty()) t->set_Guard(transition.guard); if (*isrc == *itgt) t->set_IsExternal(transition.kind == "external"); t->unload(FALSE, FALSE); } } } All.clear(); }