Пример #1
0
        private static State getState(String name, UmlActivityDiagram actdiagram, List <Transition> transitions)
        {
            foreach (UmlElement act in actdiagram.UmlObjects.OfType <UmlElement>())
            {
                if (act.Name.Equals(name))
                {
                    State sSource = new State();
                    sSource.Name = act.Name;
                    sSource.Id   = act.Id;

                    foreach (Transition item in transitions)
                    {
                        if (item.SourceState.Equals(sSource.Name))
                        {
                            Transition t = new Transition();
                            t.SourceState = sSource;
                            State      sTarget = new State();
                            UmlElement element = new UmlActionState();
                            element      = getTransition(act).Target;
                            sTarget.Id   = element.Id;
                            sTarget.Name = element.Name;
                            sSource.Transitions.Add(t);
                        }
                    }
                    return(sSource);
                }
            }
            return(null);
        }
Пример #2
0
        public static List <Transition> parallelTransitions(UmlTransition t, UmlActivityDiagram actDiagram)
        {
            List <UmlTransition> listUmlTransition = new List <UmlTransition>();
            List <Transition>    listTransition    = new List <Transition>();
            Transition           tran1             = new Transition();

            foreach (UmlTransition tran in actDiagram.UmlObjects.OfType <UmlTransition>())
            {
                if (t.Target.Id.Equals(tran.Source.Id))
                {
                    listUmlTransition.Add(tran);
                }
            }

            Transition tran2 = new Transition();

            tran2.Input = listUmlTransition[0].GetTaggedValue("TDACTION");
            if (listUmlTransition[0].GetTaggedValue("TDPARAMETERS") == null)
            {
                tran2.Output = "";
            }
            else
            {
                tran2.Output = listUmlTransition[0].GetTaggedValue("TDPARAMETERS");
            }
            tran2.SourceState = getState(t.Source.Name, actDiagram, listTransition);
            tran2.TargetState = getState(listUmlTransition[0].Target.Name, actDiagram, listTransition);;
            listTransition.Add(tran2);

            UmlTransition transition = listUmlTransition[0];

            tran1.Input = transition.GetTaggedValue("TDACTION");
            if (transition.GetTaggedValue("TDPARAMETERS") == null)
            {
                tran1.Output = "";
            }
            else
            {
                tran1.Output = transition.GetTaggedValue("TDPARAMETERS");
            }
            tran1.SourceState = getState(transition.Target.Name, actDiagram, listTransition);
            for (int i = 1; i < listUmlTransition.Count; i++)
            {
                transition  = listUmlTransition[i];
                tran1.Input = transition.GetTaggedValue("TDACTION");
                if (transition.GetTaggedValue("TDPARAMETERS") == null)
                {
                    tran1.Output = "";
                }
                else
                {
                    tran1.Output = transition.GetTaggedValue("TDPARAMETERS");
                }
                tran1.TargetState = getState(transition.Target.Name, actDiagram, listTransition);
                listTransition.Add(tran1);
                tran1             = new Transition();
                tran1.SourceState = listTransition[listTransition.Count - 1].TargetState;
            }
            Transition    tran3         = new Transition();
            UmlTransition transitionAux = getNextState(listTransition[listTransition.Count - 1].TargetState.Name, actDiagram);

            tran3.Input = transitionAux.GetTaggedValue("TDACTION");
            if (transitionAux.GetTaggedValue("TDPARAMETERS") == null)
            {
                tran3.Output = "";
            }
            else
            {
                tran3.Output = transitionAux.GetTaggedValue("TDPARAMETERS");
            }
            tran3.SourceState = listTransition[listTransition.Count - 1].TargetState;
            tran3.TargetState = getState(transitionAux.Target.Name, actDiagram, listTransition);
            listTransition.Add(tran3);
            return(listTransition);
        }