public KPsystemXMLWriter(KPsystem kp) { kPsystem = kp; model = new Model(); agentsInitial = new AgentsInitialConfiguration(); objectsId = new ObjectsId(); typeId = new Dictionary <string, int>(); membraneId = new MembraneId(); membranes = new Membranes(objectsId); FlameRulesGenerator flameRulesGenerator = new FlameRulesGenerator(objectsId, membraneId); FlameCodeRulesGenerator flameCodeRulesGenerator = new FlameCodeRulesGenerator(objectsId, membraneId); foreach (MType mType in kPsystem.Types) { typeId.Add(mType.Name, typeId.Count); membranes.AddMembraneType(mType); model.AddAgent(new Agent(mType, typeId[mType.Name], flameCodeRulesGenerator)); Console.WriteLine(mType.Name); } foreach (MType mType in kPsystem.Types) { AgentMembrane agentMembrane = new AgentMembrane(); agentMembrane.Name = mType.Name; agentMembrane.Id = membraneId[mType.Name].ToString(); List <int> list = flameCodeRulesGenerator.Rules(mType.ExecutionStrategy); foreach (MInstance mInstance in mType.Instances) { agentMembrane.AddInstance(flameRulesGenerator.Multiset(mInstance.Multiset), mInstance, membranes, membraneId); } agentsInitial.AddMembrane(agentMembrane); } }
public Instance(AgentMembrane agent, int id, string multiset, List <InstanceIds> connections) { Membrane = agent; this.Id = id; Multiset = multiset; this.Connections = connections; }
public void AddMembrane(AgentMembrane membrane) { membranes.Add(membrane); }