internal static NodeInfo Create(BetaMemoryNode node, IBetaMemory memory) { var tuples = memory.Tuples.Select( t => string.Join(" || ", t.OrderedFacts().Select(f => f.Value).ToArray())); return(new NodeInfo(NodeType.BetaMemory, string.Empty, Empty, Empty, tuples)); }
protected internal virtual void VisitBetaMemoryNode(TContext builder, BetaMemoryNode node) { foreach (var tupleSink in node.Sinks) { Visit(builder, tupleSink); } }
protected internal override void VisitBetaMemoryNode(SchemaBuilder builder, BetaMemoryNode node) { if (builder.IsVisited(node)) { return; } builder.AddNode(node, ReteNode.Create); builder.AddLinks(node, node.Sinks); base.VisitBetaMemoryNode(builder, node); }
protected internal override void VisitBetaMemoryNode(SnapshotBuilder builder, BetaMemoryNode node) { if (builder.IsVisited(node)) { return; } builder.AddNode(node, n => NodeInfo.Create(n, _workingMemory.GetNodeMemory(n))); builder.AddLinks(node, node.Sinks); base.VisitBetaMemoryNode(builder, node); }
internal static NodeInfo Create(BetaMemoryNode node, IBetaMemory memory) { var tuples = memory.Tuples.Select( t => string.Join(" || ", t.Facts.Reverse().Select(f => f.Object).ToArray())); return new NodeInfo(NodeType.BetaMemory, string.Empty, Empty, Empty, tuples); }
internal static ReteNode Create(BetaMemoryNode node) { return(new ReteNode(node.Id, NodeType.BetaMemory, rules: node.NodeInfo.Rules)); }