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:
@@ -19,8 +19,8 @@ public class ResourceDefinition {
|
||||
}
|
||||
|
||||
public class UrlLocation {
|
||||
public ILinkBuilder Segments { get; init; }
|
||||
public List<ImmutableState> States { get; init; }
|
||||
public IStateChangerFactory StateChanger { get; init; }
|
||||
public required ILinkBuilder Segments { get; init; }
|
||||
public required List<ImmutableState> States { get; init; }
|
||||
public required IStateChangerFactory StateChanger { get; init; }
|
||||
}
|
||||
}
|
||||
@@ -15,14 +15,14 @@ namespace Beam {
|
||||
|
||||
public class OrderedLinkGenerator : IEnumerator<string?> {
|
||||
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();
|
||||
|
||||
Reference in New Issue
Block a user