Allow Application factories to be extended like fflib-apex-common #69
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.
It's currently impossible to extend the
Application
class factories to incorporate your ownnewInstance
implementations. For example,Service.newInstanceByRecordType
orService.newInstanceByMyCustomFieldValue
.fflib-apex-common
was updated to allowfflib_Application
to be extended in December 2019. Closes #28The
Application
factories can now be extended so each value stream in an org can have its ownApplication
class with custom factories.Ideally, I'd like to implement a core way to do
newInstanceByRecordType
using force-di, but this will suffice for now since it mirrors howfflib_Application
works.If there are any changes required, please let me know.
Change
Application
virtual
classApplication.SelectorFactory
virtual
classprotected
setMock
toprotected
Application.UnitOfWorkFactory
virtual
classprotected
setMock
toprotected
Application.DomainFactory
virtual
classprotected
setMock
toprotected
Application.ServiceFactory
virtual
classprotected
setMock
toprotected
This change is