Skip to content

Commit c69efd3

Browse files
author
Alexander van Delft
committed
Add support for EngineeringModelSetup.AutoPublish
1 parent 07733ca commit c69efd3

File tree

8 files changed

+48
-1
lines changed

8 files changed

+48
-1
lines changed

CDP4Common/AutoGenDto/EngineeringModelSetup.cs

+10
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,14 @@ public EngineeringModelSetup(Guid iid, int rev) : base(iid: iid, rev: rev)
8888
[DataMember]
8989
public List<Guid> ActiveDomain { get; set; }
9090

91+
/// <summary>
92+
/// Gets or sets a value indicating whether AutoPublish.
93+
/// </summary>
94+
[CDPVersion("1.4.0")]
95+
[UmlInformation(aggregation: AggregationKind.None, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
96+
[DataMember]
97+
public bool AutoPublish { get; set; }
98+
9199
/// <summary>
92100
/// Gets or sets the unique identifier of the referenced DefaultOrganizationalParticipant.
93101
/// </summary>
@@ -565,6 +573,8 @@ public override void ResolveCopy(Thing originalThing, IReadOnlyDictionary<Thing,
565573
this.Attachment.Add(copy.Value.Iid);
566574
}
567575

576+
this.AutoPublish = original.AutoPublish;
577+
568578
var copyDefaultOrganizationalParticipant = originalCopyMap.SingleOrDefault(kvp => kvp.Key.Iid == original.DefaultOrganizationalParticipant);
569579
this.DefaultOrganizationalParticipant = copyDefaultOrganizationalParticipant.Value == null ? original.DefaultOrganizationalParticipant : copyDefaultOrganizationalParticipant.Value.Iid;
570580

CDP4Common/AutoGenEquatable/EngineeringModelSetupEquatable.cs

+3
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
| 20 | thingPreference | string | 0..1 | 1.2.0 |
5555
| 21 | actor | Guid | 0..1 | 1.3.0 |
5656
| 22 | attachment | Guid | 0..* | 1.4.0 |
57+
| 23 | autoPublish | bool | 1..1 | 1.4.0 |
5758
* -------------------------------------------- | ---------------------------- | ----------- | ------- */
5859

5960
namespace CDP4Common.DTO.Equatable
@@ -141,6 +142,8 @@ public static bool ArePropertiesEqual(this EngineeringModelSetup me, Engineering
141142

142143
if (!me.Attachment.OrderBy(x => x).SequenceEqual(other.Attachment.OrderBy(x => x))) return false;
143144

145+
if (!me.AutoPublish.Equals(other.AutoPublish)) return false;
146+
144147
return true;
145148
}
146149
}

CDP4Common/AutoGenMetaInfo/EngineeringModelSetupMetaInfo.cs

+4
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ public IEnumerable<OrderedItem> GetOrderedContainmentIds(CDP4Common.DTO.Thing en
211211
{
212212
{ "Actor", "1.3.0" },
213213
{ "Attachment", "1.4.0" },
214+
{ "AutoPublish", "1.4.0" },
214215
{ "DefaultOrganizationalParticipant", "1.2.0" },
215216
{ "ExcludedDomain", "1.1.0" },
216217
{ "ExcludedPerson", "1.1.0" },
@@ -262,6 +263,7 @@ public IEnumerable<PropertyMetaInfo> Properties
262263
{ "Actor", thing => thing.Actor },
263264
{ "Alias", thing => thing.Alias },
264265
{ "Attachment", thing => thing.Attachment },
266+
{ "AutoPublish", thing => thing.AutoPublish },
265267
{ "ClassKind", thing => thing.ClassKind },
266268
{ "DefaultOrganizationalParticipant", thing => thing.DefaultOrganizationalParticipant },
267269
{ "Definition", thing => thing.Definition },
@@ -294,6 +296,7 @@ public IEnumerable<PropertyMetaInfo> Properties
294296
{
295297
{ "ActiveDomain", new PropertyMetaInfo("ActiveDomain", "DomainOfExpertise", PropertyKind.List, AggregationKind.None, false, false, true, 1, "*", true) },
296298
{ "Actor", new PropertyMetaInfo("Actor", "Person", PropertyKind.Scalar, AggregationKind.None, false, false, false, 0, "1", false) },
299+
{ "AutoPublish", new PropertyMetaInfo("AutoPublish", "bool", PropertyKind.Scalar, AggregationKind.None, false, false, true, 1, "1", true) },
297300
{ "ClassKind", new PropertyMetaInfo("ClassKind", "CDP4Common.CommonData.ClassKind", PropertyKind.Scalar, AggregationKind.None, false, false, true, 1, "1", true) },
298301
{ "DefaultOrganizationalParticipant", new PropertyMetaInfo("DefaultOrganizationalParticipant", "OrganizationalParticipant", PropertyKind.Scalar, AggregationKind.None, false, false, true, 0, "1", true) },
299302
{ "EngineeringModelIid", new PropertyMetaInfo("EngineeringModelIid", "Guid", PropertyKind.Scalar, AggregationKind.None, false, false, true, 1, "1", true) },
@@ -334,6 +337,7 @@ public IEnumerable<PropertyMetaInfo> Properties
334337
private readonly Dictionary<string, Action<CDP4Common.DTO.EngineeringModelSetup, object>> propertyValueAssignmentMap = new Dictionary<string, Action<CDP4Common.DTO.EngineeringModelSetup, object>>
335338
{
336339
{ "Actor", (engineeringModelSetup, value) => engineeringModelSetup.Actor = value == null ? (Guid?)null : (Guid)value },
340+
{ "AutoPublish", (engineeringModelSetup, value) => engineeringModelSetup.AutoPublish = (bool)value },
337341
{ "DefaultOrganizationalParticipant", (engineeringModelSetup, value) => engineeringModelSetup.DefaultOrganizationalParticipant = value == null ? (Guid?)null : (Guid)value },
338342
{ "EngineeringModelIid", (engineeringModelSetup, value) => engineeringModelSetup.EngineeringModelIid = (Guid)value },
339343
{ "Iid", (engineeringModelSetup, value) => engineeringModelSetup.Iid = (Guid)value },

CDP4Common/AutoGenPoco/EngineeringModelSetup.cs

+12
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,16 @@ public EngineeringModelSetup(Guid iid, ConcurrentDictionary<CacheKey, Lazy<Commo
105105
[UmlInformation(aggregation: AggregationKind.None, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
106106
public List<DomainOfExpertise> ActiveDomain { get; set; }
107107

108+
/// <summary>
109+
/// Gets or sets a value indicating whether AutoPublish.
110+
/// </summary>
111+
/// <remarks>
112+
/// When set to true and the value of a Parameter is updated, it is immediately available as published value without creating a new Publication
113+
/// </remarks>
114+
[CDPVersion("1.4.0")]
115+
[UmlInformation(aggregation: AggregationKind.None, isDerived: false, isOrdered: false, isNullable: false, isPersistent: true)]
116+
public bool AutoPublish { get; set; }
117+
108118
/// <summary>
109119
/// Gets or sets the DefaultOrganizationalParticipant.
110120
/// </summary>
@@ -358,6 +368,7 @@ internal override void ResolveProperties(DTO.Thing dtoThing)
358368
this.Actor = (dto.Actor.HasValue) ? this.Cache.Get<Person>(dto.Actor.Value, dto.IterationContainerId) : null;
359369
this.Alias.ResolveList(dto.Alias, dto.IterationContainerId, this.Cache);
360370
this.Attachment.ResolveList(dto.Attachment, dto.IterationContainerId, this.Cache);
371+
this.AutoPublish = dto.AutoPublish;
361372
this.DefaultOrganizationalParticipant = (dto.DefaultOrganizationalParticipant.HasValue) ? this.Cache.Get<OrganizationalParticipant>(dto.DefaultOrganizationalParticipant.Value, dto.IterationContainerId) : null;
362373
this.Definition.ResolveList(dto.Definition, dto.IterationContainerId, this.Cache);
363374
this.EngineeringModelIid = dto.EngineeringModelIid;
@@ -391,6 +402,7 @@ public override DTO.Thing ToDto()
391402
dto.Actor = this.Actor != null ? (Guid?)this.Actor.Iid : null;
392403
dto.Alias.AddRange(this.Alias.Select(x => x.Iid));
393404
dto.Attachment.AddRange(this.Attachment.Select(x => x.Iid));
405+
dto.AutoPublish = this.AutoPublish;
394406
dto.DefaultOrganizationalParticipant = this.DefaultOrganizationalParticipant != null ? (Guid?)this.DefaultOrganizationalParticipant.Iid : null;
395407
dto.Definition.AddRange(this.Definition.Select(x => x.Iid));
396408
dto.EngineeringModelIid = this.EngineeringModelIid;

CDP4Common/AutoGenThingPropertyAccessor/EngineeringModelSetupPropertyAccessor.cs

+6
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,9 @@ public override object QueryValue(string path)
166166
return base.QueryValue(pd.Input);
167167
case "attachment":
168168
return base.QueryValue(pd.Input);
169+
case "autopublish":
170+
pd.VerifyPropertyDescriptorForValueProperty();
171+
return this.AutoPublish;
169172
case "defaultorganizationalparticipant":
170173
pd.VerifyPropertyDescriptorForReferenceProperty();
171174

@@ -583,6 +586,9 @@ internal object QuerySentinelValue(string path, bool isCallerEmunerable)
583586
return pd.Next == null ? (object) new List<Alias>() : new Alias(Guid.Empty, null, null).QuerySentinelValue(pd.Next.Input, true);
584587
case "attachment":
585588
return pd.Next == null ? (object) new List<Attachment>() : new Attachment(Guid.Empty, null, null).QuerySentinelValue(pd.Next.Input, true);
589+
case "autopublish":
590+
pd.VerifyPropertyDescriptorForValueProperty();
591+
return isCallerEmunerable ? (object) new List<bool>() : null;
586592
case "defaultorganizationalparticipant":
587593
pd.VerifyPropertyDescriptorForReferenceProperty();
588594

CDP4JsonSerializer/AutoGenDtoDeserializer/EngineeringModelSetupResolver.cs

+5
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,11 @@ public static CDP4Common.DTO.EngineeringModelSetup FromJsonObject(JObject jObjec
7676
engineeringModelSetup.Attachment.AddRange(jObject["attachment"].ToObject<IEnumerable<Guid>>());
7777
}
7878

79+
if (!jObject["autoPublish"].IsNullOrEmpty())
80+
{
81+
engineeringModelSetup.AutoPublish = jObject["autoPublish"].ToObject<bool>();
82+
}
83+
7984
if (!jObject["defaultOrganizationalParticipant"].IsNullOrEmpty())
8085
{
8186
engineeringModelSetup.DefaultOrganizationalParticipant = jObject["defaultOrganizationalParticipant"].ToObject<Guid?>();

CDP4JsonSerializer/AutoGenDtoSerializer/EngineeringModelSetupSerializer.cs

+2
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ public class EngineeringModelSetupSerializer : BaseThingSerializer, IThingSerial
5353
{ "actor", actor => new JValue(actor) },
5454
{ "alias", alias => new JArray(alias) },
5555
{ "attachment", attachment => new JArray(attachment) },
56+
{ "autoPublish", autoPublish => new JValue(autoPublish) },
5657
{ "classKind", classKind => new JValue(classKind.ToString()) },
5758
{ "defaultOrganizationalParticipant", defaultOrganizationalParticipant => new JValue(defaultOrganizationalParticipant) },
5859
{ "definition", definition => new JArray(definition) },
@@ -86,6 +87,7 @@ private JObject Serialize(EngineeringModelSetup engineeringModelSetup)
8687
jsonObject.Add("activeDomain", this.PropertySerializerMap["activeDomain"](engineeringModelSetup.ActiveDomain.OrderBy(x => x, this.guidComparer)));
8788
jsonObject.Add("alias", this.PropertySerializerMap["alias"](engineeringModelSetup.Alias.OrderBy(x => x, this.guidComparer)));
8889
jsonObject.Add("attachment", this.PropertySerializerMap["attachment"](engineeringModelSetup.Attachment.OrderBy(x => x, this.guidComparer)));
90+
jsonObject.Add("autoPublish", this.PropertySerializerMap["autoPublish"](engineeringModelSetup.AutoPublish));
8991
jsonObject.Add("classKind", this.PropertySerializerMap["classKind"](Enum.GetName(typeof(CDP4Common.CommonData.ClassKind), engineeringModelSetup.ClassKind)));
9092
jsonObject.Add("defaultOrganizationalParticipant", this.PropertySerializerMap["defaultOrganizationalParticipant"](engineeringModelSetup.DefaultOrganizationalParticipant));
9193
jsonObject.Add("definition", this.PropertySerializerMap["definition"](engineeringModelSetup.Definition.OrderBy(x => x, this.guidComparer)));

CDP4MessagePackSerializer/AutoGenMessagePackFormatter/EngineeringModelSetupMessagePackFormatter.cs

+6-1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
| 20 | thingPreference | string | 0..1 | 1.2.0 |
5555
| 21 | actor | Guid | 0..1 | 1.3.0 |
5656
| 22 | attachment | Guid | 0..* | 1.4.0 |
57+
| 23 | autoPublish | bool | 1..1 | 1.4.0 |
5758
* -------------------------------------------- | ---------------------------- | ----------- | ------- */
5859

5960
namespace CDP4MessagePackSerializer
@@ -106,7 +107,7 @@ public void Serialize(ref MessagePackWriter writer, EngineeringModelSetup engine
106107
throw new ArgumentNullException(nameof(engineeringModelSetup), "The EngineeringModelSetup may not be null");
107108
}
108109

109-
writer.WriteArrayHeader(23);
110+
writer.WriteArrayHeader(24);
110111

111112
writer.Write(engineeringModelSetup.Iid.ToByteArray());
112113
writer.Write(engineeringModelSetup.RevisionNumber);
@@ -197,6 +198,7 @@ public void Serialize(ref MessagePackWriter writer, EngineeringModelSetup engine
197198
{
198199
writer.Write(identifier.ToByteArray());
199200
}
201+
writer.Write(engineeringModelSetup.AutoPublish);
200202

201203
writer.Flush();
202204
}
@@ -368,6 +370,9 @@ public EngineeringModelSetup Deserialize(ref MessagePackReader reader, MessagePa
368370
engineeringModelSetup.Attachment.Add(reader.ReadBytes().ToGuid());
369371
}
370372
break;
373+
case 23:
374+
engineeringModelSetup.AutoPublish = reader.ReadBoolean();
375+
break;
371376
default:
372377
reader.Skip();
373378
break;

0 commit comments

Comments
 (0)