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); }
/// <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); }