/// <summary> /// Visit the specified target /// </summary> /// <param name="target">Target to visit.</param> public void VisitTarget(NAntTarget target) { Require.NotNull("target", target); var targetNode = FindNode(target.Name); foreach (var d in target.Depends) { var dependentNode = FindNode(d); var edge = mDependencyEdges.CreateEdge(targetNode, dependentNode); mEdges.Add(edge); } }
/// <summary> /// Create a NAntProject to represent the passed NAnt file /// </summary> /// <param name="element"></param> /// <returns></returns> public static NAntProject FromXml(XElement element) { Require.NotNull("element", element); if (!element.Name.LocalName.Equals(NAntXml.Project)) { var message = string.Format("Expected <{0}> element", NAntXml.Project); throw new ArgumentException(message, "element"); } var ns = element.Name.Namespace; var name = (string)element.Attribute(NAntXml.ProjectName); var targets = element.Elements(ns + NAntXml.Target) .Select(e => NAntTarget.FromXml(e)) .ToList(); return(new NAntProject(name, targets)); }
/// <summary> /// Visit the specified target /// </summary> /// <param name="target">Target to visit.</param> public void VisitTarget(NAntTarget target) { Require.NotNull("target", target); Node node; if (string.IsNullOrEmpty(target.Description)) { // Internal Node node = mInternalTargetStyle.CreateNode(target.Name, target.Name); } else if (IncludeDescriptions) { // External Node with description var description = target.Description.Wrap(30, "\\l") .Replace("<", "\\<") .Replace(">", "\\>") .Replace("{", "\\{") .Replace("}", "\\}"); string label = string.Format( "{{{0}|{1}}}", target.Name, description); node = mExternalTargetStyle.CreateNode(target.Name, label); } else { string label = string.Format( "{{{0}}}", target.Name); node = mExternalTargetStyle.CreateNode(target.Name, label); } mNodes.Add(node); }