コード例 #1
0
            public override void visit(Generated.Procedure obj, bool visitSubNodes)
            {
                Procedure    procedure    = (Procedure)obj;
                StateMachine stateMachine = procedure.StateMachine;

                if (stateMachine.States.Count > 0)
                {
                    stateMachine.Name = procedure.Name + "SM";

                    // Duplicate the process information
                    stateMachine.setImplemented(procedure.getImplemented());
                    stateMachine.setVerified(procedure.getVerified());
                    stateMachine.setNeedsRequirement(procedure.getNeedsRequirement());
                    foreach (ReqRef reqRef in procedure.Requirements)
                    {
                        stateMachine.appendRequirements(reqRef);
                    }
                    stateMachine.setComment(procedure.getComment());

                    NameSpace nameSpace = procedure.Enclosing as NameSpace;
                    if (nameSpace != null)
                    {
                        nameSpace.appendStateMachines(stateMachine);

                        Variable variable = (Variable)Generated.acceptor.getFactory().createVariable();
                        variable.Type = stateMachine;
                        variable.Name = procedure.Name;
                        variable.Mode = Generated.acceptor.VariableModeEnumType.aInternal;
                        nameSpace.appendVariables(variable);

                        nameSpace.removeProcedures(procedure);
                    }

                    Structure structure = procedure.Enclosing as Structure;
                    if (structure != null)
                    {
                        structure.appendStateMachines(stateMachine);

                        StructureElement element = (StructureElement)Generated.acceptor.getFactory().createStructureElement();
                        element.Type = stateMachine;
                        element.Name = procedure.Name;
                        element.Mode = Generated.acceptor.VariableModeEnumType.aInternal;
                        structure.appendElements(element);

                        structure.removeProcedures(procedure);
                    }
                }

                base.visit(obj, visitSubNodes);
            }
コード例 #2
0
ファイル: Cleaner.cs プロジェクト: fakoor/ERTMSFormalSpecs
 /// <summary>
 /// Cleans all text fields in this element
 /// </summary>
 /// <param name="obj"></param>
 /// <param name="visitSubNodes"></param>
 public override void visit(Generated.Procedure obj, bool visitSubNodes)
 {
     base.visit(obj, visitSubNodes);
 }