protected Event ParseEvent(XPathNavigator navigator, int index, ThreadGroup group)
{
if (navigator.Name == "Location") {
SourceLocation location = new SourceLocation (this, navigator);
return new SourceBreakpoint (this, index, group, location);
} else if (navigator.Name == "Expression") {
string expression = navigator.GetAttribute ("expression", "");
LocationType type = (LocationType) Enum.Parse (
typeof (LocationType), navigator.GetAttribute ("type", ""));
return new ExpressionBreakpoint (this, index, group, type, expression);
} else if (navigator.Name == "Exception") {
string exc = navigator.GetAttribute ("type", "");
bool unhandled = Boolean.Parse (navigator.GetAttribute ("unhandled", ""));
return new ExceptionCatchPoint (index, group, exc, unhandled);
} else if (navigator.Name == "MainMethod") {
return new MainMethodBreakpoint (this);
} else
throw new InternalError ();
}