public string ToString(object data, INamedGraph graph, params object[] additionalData) { StringBuilder sb = new StringBuilder(); sb.Append(ToString(debuggingEvent)); sb.Append(" "); switch (debuggingEvent) { case SubruleDebuggingEvent.Add: case SubruleDebuggingEvent.Rem: case SubruleDebuggingEvent.Emit: case SubruleDebuggingEvent.Halt: case SubruleDebuggingEvent.Highlight: { string message = (string)data; sb.Append("\""); sb.Append(message); sb.Append("\""); for (int i = 0; i < additionalData.Length; ++i) { sb.Append(" "); sb.Append(EmitHelper.Clip(EmitHelper.ToStringAutomatic(additionalData[i], graph, false, null, null), 120)); } break; } case SubruleDebuggingEvent.Match: { IMatches matches = (IMatches)data; sb.Append(matches.Producer.PackagePrefixedName); break; } case SubruleDebuggingEvent.New: case SubruleDebuggingEvent.Delete: case SubruleDebuggingEvent.Retype: case SubruleDebuggingEvent.SetAttributes: { IGraphElement elem = (IGraphElement)data; sb.Append(graph.GetElementName(elem)); sb.Append(":"); sb.Append(elem.Type.Name); if (additionalData.Length > 0) { sb.Append("."); // the attribute name sb.Append((string)additionalData[0]); } break; } default: return("INTERNAL FAILURE, unknown SubruleDebuggingConfigurationRule"); } sb.Append(" triggers "); sb.Append(ToString()); return(sb.ToString()); }
public string ToString(bool full) { StringBuilder sb = new StringBuilder(); if (fakeEntry) { sb.Append("("); } switch (type) { case SubruleComputationType.Entry: sb.Append("Entry "); break; case SubruleComputationType.Exit: sb.Append("Exit "); break; case SubruleComputationType.Emit: sb.Append("Emit "); break; case SubruleComputationType.Halt: sb.Append("Halt "); break; case SubruleComputationType.Highlight: sb.Append("Highlight "); break; } sb.Append(message); for (int i = 0; i < parameters.Count; ++i) { sb.Append(" "); if (full) { sb.Append(parameters[i]); } else { if (type == SubruleComputationType.Entry && parameters.Count == 1 && message.Contains("exec")) // print full embedded exec that is entered { sb.Append(parameters[i]); } else { sb.Append(EmitHelper.Clip(parameters[i], 120)); } } } if (fakeEntry) { sb.Append(")"); } return(sb.ToString()); }