Exemple #1
0
void UmlActivityObject::setInState(QCString s) {
  if (FromBouml && (s.left(8) != "BOUML_0x"))
    set_InState(s);
  else {
    QMap<QCString, UmlItem *>::Iterator it = All.find(s);
  
    if (it != All.end()) {
      if ((*it)->kind() == aState)
	set_InState((*it)->name());
    }
    else
      UnresolvedWithContext::add(this, s, 1);
  }
}
void UmlActivityObject::solve(int context, WrapperStr idref)
{
    switch (context) {
    case 0:
        // type
    {
        UmlTypeSpec ts;

        if (getType(idref, ts))
            set_Type(ts);
        else if (!FileIn::isBypassedId(idref))
            UmlCom::trace("activity object : unknown type reference '" + idref + "'<br>");
    }
    break;

    case 1:
        // state
    {
        QMap<QString, UmlItem *>::Iterator it = All.find(idref);

        if (it != All.end()) {
            if ((*it)->kind() == aState)
                set_InState((*it)->name());
        }
        else if (!FileIn::isBypassedId(idref))
            UmlCom::trace("activity object : unknown state reference '" + idref + "'<br>");
    }
    break;

    default:
        // selection
    {
        QMap<QString, WrapperStr>::Iterator it = OpaqueDefs.find(idref);

        if (it != OpaqueDefs.end())
            set_Selection(*it);
        else if (!FileIn::isBypassedId(idref))
            UmlCom::trace("activity object : unknown opaque definition reference '" + idref + "'<br>");
    }
    break;
    }
}