diff --git a/src/Speckle.Core/Models/Collection.cs b/src/Speckle.Core/Models/Collections/Collection.cs similarity index 97% rename from src/Speckle.Core/Models/Collection.cs rename to src/Speckle.Core/Models/Collections/Collection.cs index 6f9f315a..16e90596 100644 --- a/src/Speckle.Core/Models/Collection.cs +++ b/src/Speckle.Core/Models/Collections/Collection.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; -namespace Speckle.Core.Models; +namespace Speckle.Core.Models.Collections; /// /// A simple container for organising objects within a model and preserving object hierarchy. diff --git a/src/Speckle.Core/Models/Collections/Interfaces.cs b/src/Speckle.Core/Models/Collections/Interfaces.cs new file mode 100644 index 00000000..2ecab1ee --- /dev/null +++ b/src/Speckle.Core/Models/Collections/Interfaces.cs @@ -0,0 +1,12 @@ +namespace Speckle.Core.Models.Collections; + +/// +/// Represents a collection that has a +/// +public interface IHasColor +{ + /// + /// The argb int value of the collection color + /// + public int color { get; set; } +} diff --git a/src/Speckle.Core/Models/Layer.cs b/src/Speckle.Core/Models/Collections/Layer.cs similarity index 86% rename from src/Speckle.Core/Models/Layer.cs rename to src/Speckle.Core/Models/Collections/Layer.cs index bdf0c09b..9f1de176 100644 --- a/src/Speckle.Core/Models/Layer.cs +++ b/src/Speckle.Core/Models/Collections/Layer.cs @@ -1,9 +1,9 @@ -namespace Speckle.Core.Models; +namespace Speckle.Core.Models.Collections; /// /// A specialized collection that represents a CAD-app layer. We expect this to grow in the future with possibly other shared props. /// -public class Layer : Collection +public class Layer : Collection, IHasColor { public Layer() { } diff --git a/src/Speckle.Core/Models/CommitObjectBuilder.cs b/src/Speckle.Core/Models/CommitObjectBuilder.cs index 3bdda977..5567f95c 100644 --- a/src/Speckle.Core/Models/CommitObjectBuilder.cs +++ b/src/Speckle.Core/Models/CommitObjectBuilder.cs @@ -3,6 +3,7 @@ using System.Collections; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using Speckle.Core.Logging; +using Speckle.Core.Models.Collections; using Speckle.Core.Models.Extensions; namespace Speckle.Core.Models; diff --git a/src/Speckle.Core/Models/Extensions/BaseExtensions.cs b/src/Speckle.Core/Models/Extensions/BaseExtensions.cs index adff40d1..4f1eef63 100644 --- a/src/Speckle.Core/Models/Extensions/BaseExtensions.cs +++ b/src/Speckle.Core/Models/Extensions/BaseExtensions.cs @@ -2,6 +2,7 @@ using System; using System.Collections; using System.Collections.Generic; using System.Linq; +using Speckle.Core.Models.Collections; namespace Speckle.Core.Models.Extensions; diff --git a/src/Speckle.Core/Speckle.Core.csproj b/src/Speckle.Core/Speckle.Core.csproj index 553c3485..5b541488 100644 --- a/src/Speckle.Core/Speckle.Core.csproj +++ b/src/Speckle.Core/Speckle.Core.csproj @@ -13,15 +13,15 @@ - - - + + + - + @@ -32,7 +32,7 @@ - + diff --git a/src/Speckle.Objects/GIS/RasterLayer.cs b/src/Speckle.Objects/GIS/RasterLayer.cs index b7330d49..1b489a48 100644 --- a/src/Speckle.Objects/GIS/RasterLayer.cs +++ b/src/Speckle.Objects/GIS/RasterLayer.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using Speckle.Core.Models; +using Speckle.Core.Models.Collections; namespace Objects.GIS; diff --git a/src/Speckle.Objects/GIS/VectorLayer.cs b/src/Speckle.Objects/GIS/VectorLayer.cs index 618f95d8..522f9cdf 100644 --- a/src/Speckle.Objects/GIS/VectorLayer.cs +++ b/src/Speckle.Objects/GIS/VectorLayer.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using Speckle.Core.Models; +using Speckle.Core.Models.Collections; namespace Objects.GIS; diff --git a/src/Speckle.Objects/Organization/Deprecated/Collection.cs b/src/Speckle.Objects/Organization/Deprecated/Collection.cs index 6c05f15e..142dd214 100644 --- a/src/Speckle.Objects/Organization/Deprecated/Collection.cs +++ b/src/Speckle.Objects/Organization/Deprecated/Collection.cs @@ -2,8 +2,8 @@ using System; namespace Objects.Organization.Deprecated; -[Obsolete("Replaced by " + nameof(Speckle.Core.Models.Collection))] -public class Collection : Speckle.Core.Models.Collection +[Obsolete("Replaced by " + nameof(Speckle.Core.Models.Collections.Collection))] +public class Collection : Speckle.Core.Models.Collections.Collection { //Deserializer target for 2.13 Collection objects in the `Objects.Orgainzation` namespace diff --git a/tests/Speckle.Core.Tests.Unit/Models/Extensions/BaseExtensionsTests.cs b/tests/Speckle.Core.Tests.Unit/Models/Extensions/BaseExtensionsTests.cs index c3c1af34..738e01ab 100644 --- a/tests/Speckle.Core.Tests.Unit/Models/Extensions/BaseExtensionsTests.cs +++ b/tests/Speckle.Core.Tests.Unit/Models/Extensions/BaseExtensionsTests.cs @@ -1,5 +1,6 @@ using NUnit.Framework; using Speckle.Core.Models; +using Speckle.Core.Models.Collections; using Speckle.Core.Models.Extensions; namespace Speckle.Core.Tests.Unit.Models.Extensions; @@ -43,11 +44,11 @@ public class BaseExtensionsTests var basePaths = collection.TraverseWithPath((obj => obj is not Collection)).ToList(); Assert.That(basePaths.Count, Is.EqualTo(3)); - Assert.That(basePaths[0].Item2.speckle_type, Is.EqualTo("Speckle.Core.Models.Collection")); + Assert.That(basePaths[0].Item2.speckle_type, Is.EqualTo("Speckle.Core.Models.Collections.Collection")); Assert.That(basePaths[0].Item2["name"], Is.EqualTo("collection")); Assert.That(basePaths[0].Item1, Is.EqualTo(new List())); - Assert.That(basePaths[1].Item2.speckle_type, Is.EqualTo("Speckle.Core.Models.Collection")); + Assert.That(basePaths[1].Item2.speckle_type, Is.EqualTo("Speckle.Core.Models.Collections.Collection")); Assert.That(basePaths[1].Item2["name"], Is.EqualTo("subCollection")); Assert.That(basePaths[1].Item1, Is.EqualTo(new List() { "collection" })); diff --git a/tests/Speckle.Core.Tests.Unit/Models/GraphTraversal/TraversalContextExtensionsTests.cs b/tests/Speckle.Core.Tests.Unit/Models/GraphTraversal/TraversalContextExtensionsTests.cs index 5e670fee..33420076 100644 --- a/tests/Speckle.Core.Tests.Unit/Models/GraphTraversal/TraversalContextExtensionsTests.cs +++ b/tests/Speckle.Core.Tests.Unit/Models/GraphTraversal/TraversalContextExtensionsTests.cs @@ -1,6 +1,7 @@ using NUnit.Framework; using Speckle.Core.Common; using Speckle.Core.Models; +using Speckle.Core.Models.Collections; using Speckle.Core.Models.GraphTraversal; namespace Speckle.Core.Tests.Unit.Models.GraphTraversal;