public void WriteNode(Node node) { if (node == null) return; inlineStack.Push(isInline); isInline = (node.Nodes == null) && (node.Properties == null || node.Properties.Count < 6) && !node.DoNotInline; for (int i = 0; i < indent; i++) { writer.Write(" "); } indent++; writer.Write("BEGIN "); WriteValue(node.Label); if (isInline) { writer.Write(" "); } else { writer.Write("\n"); } WriteNodeData(node); indent--; if (!isInline) { for (int i = 0; i < indent; i++) { writer.Write(" "); } } writer.Write("END\n"); isInline = inlineStack.Pop(); }
public override void FinishedReadingNode(Node node) { var obj = (ObjectBase)node; if ("Prisoner".Equals(obj.Type)) { var prisoner = new Prisoner(obj); Prisoners.Add(prisoner.Id, prisoner); } else { OtherObjects.Add(obj.Id, obj); } }
public override Node CreateNode(string label) { if (Parser.IsId(label)) { int prisonerId = Parser.ParseId(label); var item = new Node(label); Prisoners.Add(prisonerId, item); return item; } else { return base.CreateNode(label); } }
public override Node CreateNode(string label) { if (Parser.IsId(label)) { var report = new Node(label); int prisonerId = Parser.ParseId(label); Reports.Add(prisonerId, report); return report; } else { return base.CreateNode(label); } }
public override void FinishedReadingNode(Node node) { var penaltyNode = node as Penalty; if (penaltyNode != null) { List<Penalty> list; if (!PenaltyList.TryGetValue(penaltyNode.ObjectId, out list)) { list = new List<Penalty>(); PenaltyList.Add(penaltyNode.ObjectId, list); } list.Add(penaltyNode); } }
public void PushNode(string key, Node value) { if (Nodes == null) { Nodes = new Dictionary<string, List<Node>>(); } List<Node> list; if (!Nodes.TryGetValue(key, out list)) { list = new List<Node>(); Nodes.Add(key, list); } list.Add(value); }
public override void FinishedReadingNode(Node node) { var studentNode = node as ReformStudent; if (studentNode != null) { Students.Add(studentNode.Id, studentNode); } }
void WriteNodeData(Node node) { node.WriteProperties(this); if (node.Properties != null) { foreach (var property in node.Properties) { foreach (string value in property.Value) { WriteProperty(property.Key, value); } } } node.WriteNodes(this); if (node.Nodes != null) { foreach (var nodeSet in node.Nodes) { foreach (Node value in nodeSet.Value) { WriteNode(value); } } } }
public void CopyNodes(Node other) { foreach (var property in other.ListNodes()) { PushNode(property.Label, property); } }
public void ReparseProperties(Node other) { foreach (var property in other.ListProperties()) { ReadKey(property.Key, property.Value); } }
public virtual void FinishedReadingNode(Node node) {}
public virtual Node CreateNode(string label) { var newNode = new Node(label); PushNode(label, newNode); return newNode; }