Introduce factory method for ProjectGenerator creation #1582
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.
Current behaviour
Since the
ProjectGenerator
offersprotected
methods, a use case of sub-classing it is supported. In the same time, theProjectGeneratorInvoker
creates the instance of it just in place where it is used.Expected behavior
I can easily subclass the
ProjectGenerator
and replace its invocation.Proposed solution
This PR extracts the creation of the
ProjectGenerator
to a factory method. In doing so, it allows to replace theProjectGeneratorInvoker
with own implementation, overriding the creation of theProjectGenerator
with own sub-classed version and use that instead of the original one.In addition, the transient modifier of the temp files seems to be unneeded, since the
ProjectGeneratorInvoker
should not be serialized/deserialized,transient
is not used in any other place in the project and is a little surprising at that location.