/// <summary> /// Called when a method is visited. /// </summary> /// <param name="methodDeclaration"></param> /// <param name="data"></param> /// <returns></returns> public override object VisitMethodDeclaration(MethodDeclaration methodDeclaration, object data) { INode nodeParent = methodDeclaration.Parent; if (nodeParent is TypeDeclaration) { TypeDeclaration typeDeclaration = (TypeDeclaration)methodDeclaration.Parent; EventType evt = new EventType(); evt.id = methodDeclaration.Name; if (methodDeclaration.Parameters.Count > 0) { evt.parameter = new ParameterType[methodDeclaration.Parameters.Count]; for (int i = 0; i < methodDeclaration.Parameters.Count; i++) { ParameterDeclarationExpression paramDecl = methodDeclaration.Parameters[i]; ParameterType param = new ParameterType(); param.name = paramDecl.ParameterName; param.type = paramDecl.TypeReference.ToString(); evt.parameter[i] = param; } } model.AddEvent(evt); model.AddEventToFeeder(feeder, evt.id); } return(base.VisitMethodDeclaration(methodDeclaration, data)); }
/// <summary> /// Validate the event tag. /// </summary> /// <param name="reader">The Xml reader.</param> /// <param name="model">The State Machine Model</param> private void ValidateEvent(XmlReader reader, StateMachineType model, string feeder) { string eventName = reader[TAG_NAME]; string eventId = reader[TAG_EVENT_ID]; ts.TraceEvent(TraceEventType.Verbose, 1, "ValidateEvent name {0}, id {1}", eventName, eventId); model.AddEventToFeeder(feeder, eventId); }