1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00

Dynamic datamodels - Added some required models

This commit is contained in:
SpoinkyNL 2020-09-29 21:56:40 +02:00
parent 882fe44c20
commit a19e754f7c
4 changed files with 69 additions and 0 deletions

View File

@ -32,6 +32,7 @@
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=models_005Cprofile_005Cdatabindings_005Cmodes/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=models_005Cprofile_005Cdatabindings_005Cmodifiers/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=models_005Cprofile_005Cdatabindings_005Cmodifiers_005Cabstract/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=models_005Cprofile_005Cdatamodel/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=models_005Cprofile_005Clayerproperties/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=models_005Cprofile_005Clayerproperties_005Cattributes/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=models_005Cprofile_005Clayerproperties_005Ctypes/@EntryIndexedValue">True</s:Boolean>

View File

@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Artemis.Core.DataModelExpansions;
namespace Artemis.Core
{
/// <summary>
/// Represents a path that points to a property in data model
/// </summary>
public class DataModelPath
{
private readonly LinkedList<DataModelPathPart> _parts;
internal DataModelPath()
{
_parts = new LinkedList<DataModelPathPart>();
}
/// <summary>
/// Gets the data model at which this path starts
/// </summary>
public DataModel DataModel { get; private set; }
/// <summary>
/// Gets a read-only list of all parts of this path
/// </summary>
public IReadOnlyCollection<DataModelPathPart> Parts => _parts.ToList().AsReadOnly();
internal Guid DataModelGuid { get; set; }
}
}

View File

@ -0,0 +1,18 @@
namespace Artemis.Core
{
/// <summary>
/// Represents a part of a data model path
/// </summary>
public class DataModelPathPart
{
/// <summary>
/// Gets the identifier that is associated with this part
/// </summary>
public string Identifier { get; private set; }
/// <summary>
/// Gets the type of data model this part of the path points to
/// </summary>
public DataModelPathPartType Type { get; private set; }
}
}

View File

@ -0,0 +1,18 @@
namespace Artemis.Core
{
/// <summary>
/// Represents a type of data model path
/// </summary>
public enum DataModelPathPartType
{
/// <summary>
/// Represents a static data model type that points to a data model defined in code
/// </summary>
Static,
/// <summary>
/// Represents a static data model type that points to a data model defined at runtime
/// </summary>
Dynamic
}
}