Skip to content

Commit

Permalink
Fixes #1832 individual serialization (#1847)
Browse files Browse the repository at this point in the history
* Fixes #1832 individual serialization

* PR feedback
  • Loading branch information
rwmcintosh authored Dec 21, 2022
1 parent 6170cc3 commit 82b06c0
Show file tree
Hide file tree
Showing 9 changed files with 100 additions and 12 deletions.
8 changes: 2 additions & 6 deletions src/OSPSuite.Core/Domain/Builder/IndividualBuildingBlock.cs
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
using OSPSuite.Utility.Collections;

namespace OSPSuite.Core.Domain.Builder
namespace OSPSuite.Core.Domain.Builder
{
public class IndividualBuildingBlock : PathAndValueEntityBuildingBlockFromPKSim<IndividualParameter>
{
public Cache<string, string> OriginData { set; get; } = new Cache<string, string>();
public ValueOrigin ValueOrigin { set; get; }
public CalculationMethodCache CalculationMethodCache { set; get; }
public OriginDataItems OriginData { get; } = new OriginDataItems();
}
}
11 changes: 11 additions & 0 deletions src/OSPSuite.Core/Domain/Builder/OriginDataItem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
namespace OSPSuite.Core.Domain.Builder
{
public class OriginDataItem
{
public string Name { get; set; }
public string DisplayName { get; set; }
public string Description { get; set; }
public string Icon { get; set; }
public string Value { get; set; }
}
}
20 changes: 20 additions & 0 deletions src/OSPSuite.Core/Domain/Builder/OriginDataItems.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using System.Collections.Generic;
using System.Linq;
using OSPSuite.Utility.Collections;

namespace OSPSuite.Core.Domain.Builder
{
public class OriginDataItems
{
private readonly Cache<string, OriginDataItem> _cache = new Cache<string, OriginDataItem>(getKey: x => x.Name);

public IReadOnlyList<OriginDataItem> AllDataItems => _cache.ToList();

public ValueOrigin ValueOrigin { set; get; }

public void AddOriginDataItem(OriginDataItem originDataItem)
{
_cache[originDataItem.Name]= originDataItem;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,25 @@ public override void PerformMapping()
}
}

public class ExpressionProfileBuildingBlockXmlSerializer : BuildingBlockXmlSerializer<ExpressionProfileBuildingBlock, ExpressionParameter>
public class PathAndValueEntityBuildingBlockFromPKSimXmlSerializer<TBuildingBlock, TBuilder> : BuildingBlockXmlSerializer<TBuildingBlock, TBuilder> where TBuilder : PathAndValueEntity where TBuildingBlock : PathAndValueEntityBuildingBlockFromPKSim<TBuilder>
{
public override void PerformMapping()
{
base.PerformMapping();
Map(x => x.PKSimVersion);
}
}

public class IndividualBuildingBlockXmlSerializer : PathAndValueEntityBuildingBlockFromPKSimXmlSerializer<IndividualBuildingBlock, IndividualParameter>
{
public override void PerformMapping()
{
base.PerformMapping();
Map(x => x.OriginData);
}
}

public class ExpressionProfileBuildingBlockXmlSerializer : PathAndValueEntityBuildingBlockFromPKSimXmlSerializer<ExpressionProfileBuildingBlock, ExpressionParameter>
{
public override void PerformMapping()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,5 @@ namespace OSPSuite.Core.Serialization.Xml
{
public class ExpressionParameterXmlSerializer : PathAndValueEntityXmlSerializer<ExpressionParameter>
{
public override void PerformMapping()
{
base.PerformMapping();
Map(x => x.Value);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using OSPSuite.Core.Domain.Builder;

namespace OSPSuite.Core.Serialization.Xml
{
public class IndividualParameterXmlSerializer : PathAndValueEntityXmlSerializer<IndividualParameter>
{

}
}
16 changes: 16 additions & 0 deletions src/OSPSuite.Core/Serialization/Xml/OriginDataItemXmlSerializer.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
using OSPSuite.Core.Domain.Builder;

namespace OSPSuite.Core.Serialization.Xml
{
public class OriginDataItemXmlSerializer : OSPSuiteXmlSerializer<OriginDataItem>
{
public override void PerformMapping()
{
Map(x => x.Value);
Map(x => x.Description);
Map(x => x.Name);
Map(x => x.DisplayName);
Map(x => x.Icon);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
using OSPSuite.Core.Domain.Builder;

namespace OSPSuite.Core.Serialization.Xml
{
public class OriginDataItemsXmlSerializer : OSPSuiteXmlSerializer<OriginDataItems>
{
protected OriginDataItemsXmlSerializer(string name)
: base(name)
{
}

protected OriginDataItemsXmlSerializer()
{
}

public override void PerformMapping()
{
Map(x => x.ValueOrigin);
MapEnumerable(x => x.AllDataItems, x=> x.AddOriginDataItem);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ public override void PerformMapping()
Map(x => x.Dimension);
Map(x => x.ContainerPath);
MapReference(x => x.Formula);
Map(x => x.Value);
}
}
}

0 comments on commit 82b06c0

Please sign in to comment.