Skip to content

Commit 156254f

Browse files
committed
Added project related custom data.
1 parent 918d447 commit 156254f

4 files changed

Lines changed: 18 additions & 1 deletion

File tree

‎ReClass.NET/DataExchange/ReClass/ReClassNetFile.Constants.cs‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public partial class ReClassNetFile
1313
private const string SerialisationClassName = "__Serialization_Class__";
1414

1515
public const string XmlRootElement = "reclass";
16+
public const string XmlCustomDataElement = "custom_data";
1617
public const string XmlClassesElement = "classes";
1718
public const string XmlClassElement = "class";
1819
public const string XmlNodeElement = "node";

‎ReClass.NET/DataExchange/ReClass/ReClassNetFile.Read.cs‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,15 @@ public void Load(Stream input, ILogger logger)
4949
logger.Log(LogLevel.Warning, $"The platform of the file ({platform}) doesn't match the program platform ({Constants.Platform}).");
5050
}
5151

52+
var customDataElement = document.Root.Element(XmlCustomDataElement);
53+
if (customDataElement != null)
54+
{
55+
foreach (var kv in customDataElement.Elements())
56+
{
57+
project.CustomData[kv.Name.ToString()] = kv.Value;
58+
}
59+
}
60+
5261
var classes = new List<Tuple<XElement, ClassNode>>();
5362

5463
foreach (var element in document.Root

‎ReClass.NET/DataExchange/ReClass/ReClassNetFile.Write.cs‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ public void Save(Stream output, ILogger logger)
3333
XmlRootElement,
3434
new XAttribute(XmlVersionAttribute, Version1),
3535
new XAttribute(XmlPlatformAttribute, Constants.Platform),
36-
new XElement(XmlClassesElement, CreateClassElements(project.Classes, logger))
36+
new XElement(XmlClassesElement, CreateClassElements(project.Classes, logger)),
37+
new XElement(XmlCustomDataElement, project.CustomData.Select(kv => new XElement(kv.Key, kv.Value)))
3738
)
3839
);
3940

‎ReClass.NET/ReClassNetProject.cs‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ public class ReClassNetProject : IDisposable
1919

2020
public string Path { get; set; }
2121

22+
/// <summary>
23+
/// Key-Value map with custom data for plugins to store project related data.
24+
/// The preferred key format is {Plugin Name}_{Key Name}.
25+
/// </summary>
26+
public Dictionary<string, string> CustomData { get; } = new Dictionary<string, string>();
27+
2228
public void Dispose()
2329
{
2430
Clear();

0 commit comments

Comments
 (0)