From 8e60109f5ee5215e266b73673d8fd04dcacae963 Mon Sep 17 00:00:00 2001 From: qwsdcvghyu89 <61093706+qwsdcvghyu89@users.noreply.github.com> Date: Sat, 27 Sep 2025 15:48:14 +1000 Subject: [PATCH] Add required modifiers and generalize behaviour type Marked UrlLocation properties as required in ResourceDefinition for improved null safety. Changed OrderedLinkGenerator to use the more general IStateChangeBehaviour instead of NumberedStateChanger, increasing flexibility. --- Beam.Models/ResourceDefinition.cs | 6 +++--- Beam/OrderedLinkGenerator.cs | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Beam.Models/ResourceDefinition.cs b/Beam.Models/ResourceDefinition.cs index ff74b31..8820e02 100644 --- a/Beam.Models/ResourceDefinition.cs +++ b/Beam.Models/ResourceDefinition.cs @@ -19,8 +19,8 @@ public class ResourceDefinition { } public class UrlLocation { - public ILinkBuilder Segments { get; init; } - public List States { get; init; } - public IStateChangerFactory StateChanger { get; init; } + public required ILinkBuilder Segments { get; init; } + public required List States { get; init; } + public required IStateChangerFactory StateChanger { get; init; } } } \ No newline at end of file diff --git a/Beam/OrderedLinkGenerator.cs b/Beam/OrderedLinkGenerator.cs index 2fd6708..92b9305 100644 --- a/Beam/OrderedLinkGenerator.cs +++ b/Beam/OrderedLinkGenerator.cs @@ -15,14 +15,14 @@ namespace Beam { public class OrderedLinkGenerator : IEnumerator { public ILinkBuilder Builder { get; set; } - public NumberedStateChanger Behaviour { get; } + public IStateChangeBehaviour Behaviour { get; } private IState? EndState; private IState InitialState; - public OrderedLinkGenerator(ILinkBuilder builder, NumberedStateChanger behaviour, params string[] initialState) + public OrderedLinkGenerator(ILinkBuilder builder, IStateChangeBehaviour behaviour, params string[] initialState) : this(builder, behaviour, new State(initialState)) { } - public OrderedLinkGenerator(ILinkBuilder builder, NumberedStateChanger behaviour, IState initialState, IState? endState = null) { + public OrderedLinkGenerator(ILinkBuilder builder, IStateChangeBehaviour behaviour, IState initialState, IState? endState = null) { Builder = builder; Behaviour = behaviour; InitialState = initialState.Copy();