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;
+ }
}
}