From a80f0fa529beed08d2d89f791fb6aeb655b9a1d7 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Thu, 14 Apr 2022 00:37:10 -0400 Subject: [PATCH] implement ISupportsExtraData on ObjectModel --- Libraries/UniversalEditor.Core/ObjectModel.cs | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/Libraries/UniversalEditor.Core/ObjectModel.cs b/Libraries/UniversalEditor.Core/ObjectModel.cs index cc283aab..073fd516 100644 --- a/Libraries/UniversalEditor.Core/ObjectModel.cs +++ b/Libraries/UniversalEditor.Core/ObjectModel.cs @@ -21,13 +21,14 @@ using System; using System.Collections.Generic; +using MBS.Framework; namespace UniversalEditor { /// /// The in-memory representation of data serialized to and from an using a particular . /// - public abstract class ObjectModel : ICloneable, References + public abstract class ObjectModel : ICloneable, References, ISupportsExtraData { /// /// Represents a collection of objects. @@ -225,5 +226,32 @@ namespace UniversalEditor { return GetCriteriaObjectsInternal(); } + + + + // implementation of ISupportsExtraData + + public T GetExtraData(string key, T defaultValue = default(T)) + { + return (T)GetExtraData(key, (object)defaultValue); + } + + public void SetExtraData(string key, T value) + { + SetExtraData(key, (object)value); + } + + private Dictionary _extraData = new Dictionary(); + public object GetExtraData(string key, object defaultValue = null) + { + if (_extraData.ContainsKey(key)) + return _extraData[key]; + return defaultValue; + } + + public void SetExtraData(string key, object value) + { + _extraData[key] = value; + } } }