Skip to content

Commit 015cc51

Browse files
committed
Add factory constructor
1 parent dc71ecf commit 015cc51

File tree

35 files changed

+117
-132
lines changed

35 files changed

+117
-132
lines changed

SourceCode/Symu/Classes/Agents/CognitiveAgent.Messaging.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ public bool AcceptNewInteraction(IAgentId senderId)
229229
}
230230

231231
// Message.Sender is now part of agent interaction sphere
232-
_ = new ActorActor(Environment.MainOrganization.MetaNetwork.ActorActor, AgentId, senderId);
232+
ActorActor.CreateInstance(Environment.MainOrganization.MetaNetwork.ActorActor, AgentId, senderId);
233233

234234
return true;
235235
}

SourceCode/Symu/Classes/Agents/Models/CognitiveModels/ActorTaskModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public IDictionary<ITask, IEnumerable<IKnowledge>> Knowledge
9292
/// <param name="taskId"></param>
9393
public void AddActorTask(IAgentId taskId)
9494
{
95-
_ = new ActorTask(_actorTaskNetwork, _agentId, taskId);
95+
ActorTask.CreateInstance(_actorTaskNetwork, _agentId, taskId);
9696
}
9797

9898
/// <summary>

SourceCode/Symu/Classes/Agents/Models/CognitiveModels/BeliefsModel.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ public void AddBelief(IAgentId beliefId, BeliefLevel beliefLevel)
157157
return;
158158
}
159159

160-
_ = new ActorBelief(_actorBeliefNetwork, _agentId, beliefId, beliefLevel);
160+
ActorBelief.CreateInstance(_actorBeliefNetwork, _agentId, beliefId, beliefLevel);
161161
}
162162

163163

@@ -180,7 +180,7 @@ public void AddBeliefFromKnowledgeId(IAgentId knowledgeId, BeliefLevel beliefLev
180180
throw new NullReferenceException(nameof(belief));
181181
}
182182

183-
_ = new ActorBelief(_actorBeliefNetwork, _agentId, belief.EntityId, beliefLevel);
183+
ActorBelief.CreateInstance(_actorBeliefNetwork, _agentId, belief.EntityId, beliefLevel);
184184
}
185185

186186
public ActorBelief GetActorBelief(IAgentId beliefId)
@@ -423,7 +423,7 @@ public void LearnNewBelief(IAgentId beliefId, BeliefLevel beliefLevel)
423423
return;
424424
}
425425

426-
_ = new ActorBelief(_actorBeliefNetwork, _agentId, beliefId, beliefLevel);
426+
ActorBelief.CreateInstance(_actorBeliefNetwork, _agentId, beliefId, beliefLevel);
427427
InitializeBeliefs(true);
428428
}
429429
}

SourceCode/Symu/Classes/Agents/Models/CognitiveModels/KnowledgeModel.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ public void AddKnowledge(IAgentId knowledgeId, KnowledgeLevel level, float minim
192192
return;
193193
}
194194

195-
_ = new ActorKnowledge(_actorKnowledgeNetwork, _agentId, knowledgeId, level, minimumKnowledge, timeToLive);
195+
ActorKnowledge.CreateInstance(_actorKnowledgeNetwork, _agentId, knowledgeId, level, minimumKnowledge, timeToLive);
196196
}
197197

198198
/// <summary>
@@ -209,8 +209,7 @@ public void AddKnowledge(IAgentId knowledgeId, float[] knowledgeBits, float mini
209209
return;
210210
}
211211

212-
var actorKnowledge = new ActorKnowledge(_agentId, knowledgeId, knowledgeBits, minimumKnowledge, timeToLive);
213-
_actorKnowledgeNetwork.Add(actorKnowledge);
212+
ActorKnowledge.CreateInstance(_actorKnowledgeNetwork, _agentId, knowledgeId, knowledgeBits, minimumKnowledge, timeToLive);
214213
}
215214

216215

SourceCode/Symu/Classes/Agents/Models/CognitiveModels/ResourceTaskModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public void AddResourceTasks(IEnumerable<ITask> tasks)
8888

8989
foreach (var task in tasks)
9090
{
91-
_ = new ResourceTask(_resourceTaskNetwork, _resourceId, task.EntityId);
91+
ResourceTask.CreateInstance(_resourceTaskNetwork, _resourceId, task.EntityId);
9292
}
9393
}
9494
}

SourceCode/Symu/Classes/Organization/MainOrganization.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,17 @@ namespace Symu.Classes.Organization
2626
/// You must define your own organization derived classes.
2727
/// </summary>
2828
//TODO should be an abstract class
29-
public class MainOrganization //: Entity
29+
public class MainOrganization
3030
{
3131
public const byte Class = ClassIdCollection.Organization;
32+
public static IClassId ClassId => new ClassId(Class);
3233

33-
public MainOrganization(string name) //: base(new MetaNetwork(), Class, name)
34+
public MainOrganization(string name)
3435
{
3536
Name = name;
3637
MetaNetwork = new GraphMetaNetwork(Models.InteractionSphere);
3738
}
3839

39-
public static IClassId ClassId => new ClassId(Class);
4040

4141
public string Name { get; set; }
4242

SourceCode/Symu/Repository/Edges/ActorBelief.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,23 @@ public class ActorBelief : OrgMod.Edges.ActorBelief
4141
/// </summary>
4242
private const int RangeMax = 1;
4343

44+
4445
public ActorBelief(IAgentId actorId, IAgentId beliefId, BeliefLevel beliefLevel) : base(actorId, beliefId)
4546
{
4647
BeliefLevel = beliefLevel;
4748
}
49+
/// <summary>
50+
/// Factory
51+
/// </summary>
52+
/// <param name="network"></param>
53+
/// <param name="actorId"></param>
54+
/// <param name="beliefId"></param>
55+
/// <param name="beliefLevel"></param>
56+
/// <returns></returns>
57+
public static ActorBelief CreateInstance(ActorBeliefNetwork network, IAgentId actorId, IAgentId beliefId, BeliefLevel beliefLevel)
58+
{
59+
return new ActorBelief(network, actorId, beliefId, beliefLevel);
60+
}
4861
public ActorBelief(ActorBeliefNetwork network, IAgentId actorId, IAgentId beliefId, BeliefLevel beliefLevel) : base(network, actorId, beliefId)
4962
{
5063
BeliefLevel = beliefLevel;

SourceCode/Symu/Repository/Edges/ActorKnowledge.cs

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ namespace Symu.Repository.Edges
2929
/// <example>Dev Java, test, project management, sociology, ...</example>
3030
public class ActorKnowledge : EntityKnowledge
3131
{
32+
public static ActorKnowledge CreateInstance(TwoModesNetwork<IEntityKnowledge> network, IAgentId actorId, IAgentId knowledgeId, KnowledgeBits knowledgeBits)
33+
{
34+
return new ActorKnowledge(network, actorId, knowledgeId, knowledgeBits);
35+
}
3236
/// <summary>
3337
/// Constructor used by WorkerCognitiveAgent for ForgettingKnowledge
3438
/// </summary>
@@ -41,8 +45,7 @@ public ActorKnowledge(TwoModesNetwork<IEntityKnowledge> network, IAgentId actorI
4145
{
4246
KnowledgeBits = knowledgeBits;
4347
Length = KnowledgeBits?.Length ?? 0;
44-
}
45-
48+
}
4649
/// <summary>
4750
/// Constructor used by Agent.Cognitive for ForgettingKnowledge
4851
/// </summary>
@@ -62,7 +65,11 @@ public ActorKnowledge(IAgentId actorId, IAgentId knowledgeId, float[] knowledgeB
6265
KnowledgeBits.SetBits(knowledgeBits, step);
6366
Length = KnowledgeBits.Length;
6467
}
65-
68+
public static ActorKnowledge CreateInstance(TwoModesNetwork<IEntityKnowledge> network, IAgentId actorId, IAgentId knowledgeId, float[] knowledgeBits, float minimumKnowledge,
69+
short timeToLive, ushort step = 0)
70+
{
71+
return new ActorKnowledge(network, actorId, knowledgeId, knowledgeBits, minimumKnowledge, timeToLive, step);
72+
}
6673
/// <summary>
6774
/// Constructor used by Agent.Cognitive for ForgettingKnowledge
6875
/// </summary>
@@ -74,16 +81,14 @@ public ActorKnowledge(IAgentId actorId, IAgentId knowledgeId, float[] knowledgeB
7481
/// <param name="timeToLive"></param>
7582
/// <param name="step"></param>
7683
public ActorKnowledge(TwoModesNetwork<IEntityKnowledge> network, IAgentId actorId, IAgentId knowledgeId, float[] knowledgeBits, float minimumKnowledge,
77-
short timeToLive,
78-
ushort step = 0) : base(network, actorId, knowledgeId)
84+
short timeToLive, ushort step = 0) : base(network, actorId, knowledgeId)
7985
{
8086
MinimumKnowledge = minimumKnowledge;
8187
TimeToLive = timeToLive;
8288
KnowledgeBits = new KnowledgeBits(minimumKnowledge, timeToLive);
8389
KnowledgeBits.SetBits(knowledgeBits, step);
8490
Length = KnowledgeBits.Length;
8591
}
86-
8792
/// <summary>
8893
/// Constructor based on the knowledge Id and the knowledge Level.
8994
/// KnowledgeBits is not yet initialized.
@@ -103,7 +108,11 @@ public ActorKnowledge(IAgentId actorId, IAgentId knowledgeId, KnowledgeLevel lev
103108
KnowledgeBits = new KnowledgeBits(minimumKnowledge, timeToLive);
104109
Length = KnowledgeBits.Length;
105110
}
106-
111+
public static ActorKnowledge CreateInstance(TwoModesNetwork<IEntityKnowledge> network, IAgentId actorId, IAgentId knowledgeId, KnowledgeLevel level, float minimumKnowledge,
112+
short timeToLive)
113+
{
114+
return new ActorKnowledge(network, actorId, knowledgeId, level, minimumKnowledge, timeToLive);
115+
}
107116
/// <summary>
108117
/// Constructor based on the knowledge Id and the knowledge Level.
109118
/// KnowledgeBits is not yet initialized.

SourceCode/Symu/Repository/Edges/ActorPortfolio.cs

Lines changed: 0 additions & 30 deletions
This file was deleted.

SourceCode/Symu/Repository/Entities/Belief.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,25 @@ public Belief()
4040
{
4141
}
4242

43+
44+
public static Belief CreateInstance(GraphMetaNetwork metaNetwork, byte length, RandomGenerator model,
45+
BeliefWeightLevel beliefWeightLevel)
46+
{
47+
return new Belief(metaNetwork, length, model, beliefWeightLevel);
48+
}
49+
50+
public static Belief CreateInstance(GraphMetaNetwork metaNetwork, byte length, RandomGenerator model,
51+
BeliefWeightLevel beliefWeightLevel, string name)
52+
{
53+
return new Belief(metaNetwork, length, model, beliefWeightLevel, name);
54+
}
55+
56+
public static Belief CreateInstance(GraphMetaNetwork metaNetwork, IKnowledge knowledge, byte length, RandomGenerator model,
57+
BeliefWeightLevel beliefWeightLevel)
58+
{
59+
return new Belief(metaNetwork, knowledge, length, model, beliefWeightLevel);
60+
}
61+
4362
public Belief(GraphMetaNetwork metaNetwork, byte length, RandomGenerator model,
4463
BeliefWeightLevel beliefWeightLevel) : base(metaNetwork)
4564
{

0 commit comments

Comments
 (0)