using System; using System.Collections.Generic; using Artemis.Core.DataModelExpansions; namespace Artemis.Core.Services { /// /// A service that allows you to register and retrieve data models /// public interface IDataModelService : IArtemisService { /// /// Add a data model to so that it is available to conditions and data bindings /// /// DataModelRegistration RegisterDataModel(DataModel dataModel); /// /// Remove a previously added data model so that it is no longer available /// void RemoveDataModel(DataModelRegistration registration); /// /// Returns a list of all registered data models /// List GetDataModels(); /// /// If found, returns the registered data model of type /// /// The type of the data model to find T GetDataModel() where T : DataModel; /// /// If found, returns the data model of the provided plugin /// /// The plugin to find the data model of DataModel GetPluginDataModel(Plugin plugin); /// /// If found, returns the data model of the provided plugin GUID /// /// The GUID of the plugin to find the data model of DataModel GetPluginDataModel(Guid pluginGuid); } }