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 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; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user