Remove generic parameter from BoskDriver #25
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
That generic parameter was used only to constrain the return type of
initialRoot
, and was not carrying its weight. Very little is lost if we verify the object returned byinitialRoot
at runtime, and in exchange, we simplifyBoskDriver
(a critically important type in this library).When trying to add additional rigour around driver creation, it turned out there were cases where we had a generic root type
R
and driver classD
and wanted to describe the driver asD<R>
, but Java's generic type system is not up to this task. By dropping the generic parameter on the driver, we can now describe this type precisely as justD
.Some implementations of
BoskDriver
choose to be parameterized anyway, if it helps the implementation ensure type safety.We've left
DriverFactory
parameterized because it turns out to be useful to ensure that certain kinds of related driver factories will accept the same root type; for example, inReplicaSet
.