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.
This commit is contained in:
qwsdcvghyu89
2025-09-27 15:48:14 +10:00
parent 94b6c0645c
commit 8e60109f5e
2 changed files with 6 additions and 6 deletions
+3 -3
View File
@@ -19,8 +19,8 @@ public class ResourceDefinition {
} }
public class UrlLocation { public class UrlLocation {
public ILinkBuilder Segments { get; init; } public required ILinkBuilder Segments { get; init; }
public List<ImmutableState> States { get; init; } public required List<ImmutableState> States { get; init; }
public IStateChangerFactory StateChanger { get; init; } public required IStateChangerFactory StateChanger { get; init; }
} }
} }
+3 -3
View File
@@ -15,14 +15,14 @@ namespace Beam {
public class OrderedLinkGenerator : IEnumerator<string?> { public class OrderedLinkGenerator : IEnumerator<string?> {
public ILinkBuilder Builder { get; set; } public ILinkBuilder Builder { get; set; }
public NumberedStateChanger Behaviour { get; } public IStateChangeBehaviour Behaviour { get; }
private IState? EndState; private IState? EndState;
private IState InitialState; 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)) { } : 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; Builder = builder;
Behaviour = behaviour; Behaviour = behaviour;
InitialState = initialState.Copy(); InitialState = initialState.Copy();