= fflib_DynamicDomainFactory Class :Author: Wilhelmus G.J. Velzeboer :Email: wim@velzeboer.nl :Date: 2021 :Revision: version 1 link:README.asciidoc[<- _Back to main overview_] Domain Factory for creating instances of Domain classes using a resolver to dynamically link an Object type to its Domain Constructor implementation class This class is extended from fflib_DynamicAppFactory and implements the link:fflib_IDomainFactory.asciidoc[fflib_IDomainFactory] interface class. == Constructor Methods - <> + == Inherited Methods This implementation of link:fflib_IDomainFactory.asciidoc[fflib_IDomainFactory] Does not add any new public or protected methods other than the following methods which are defined in the interface link:fflib_IDomainFactory.asciidoc[fflib_IDomainFactory] and in the abstract class link:fflib_DynamicAppFactory[fflib_DynamicAppFactory]. - link:fflib_IDomainFactory.asciidoc#newInstance1[newInstance(Set recordIds)] + Dynamically constructs an instance of a Domain class for the given record Ids - link:fflib_IDomainFactory.asciidoc# recordIds, Schema.SObjectType sObjectType)] + Dynamically constructs an instance of a Domain class for the given record Ids - link:fflib_IDomainFactory.asciidoc#newInstance3[newInstance(List records)] + Dynamically constructs an instance of the Domain class for the given records - link:fflib_IDomainFactory.asciidoc#newInstance4[newInstance(List objects, Object objectType)] + Dynamically constructs an instance of the Domain class for the given Objects - link:fflib_IDomainFactory.asciidoc#newInstance5[newInstance(List records, Schema.SObjectType sObjectType)] + Dynamically constructs an instance of the Domain class for the given records - link:fflib_IDomainFactory.asciidoc#setMock1[setMock(fflib_ISObjectDomain mockDomain)] + - link:fflib_IDomainFactory.asciidoc#setMock2[setMock(Schema.SObjectType sObjectType, fflib_ISObjectDomain mockDomain)] + Registers a mock implementation in the Factory for the provided sObjectType - link:fflib_IDomainFactory.asciidoc#setMock3[setMock(fflib_IDomain mockDomain)] + Registers a mock in the Factory by providing a mock instance of a domain - link:fflib_IDomainFactory.asciidoc#setMock4[setMock(Object domainType, fflib_IDomain mockDomain)] + Registers a mock implementation in the Factory for the provided sObjectType == Protected Variables - Map **mockDomainByObjectType** + A map linking the ObjectType to a mock implementation of the domain. - fflib_ISelectorFactory **selectorFactory** + Holds the reference to the selector factory instance. --- [[constructor0]] === fflib_DynamicDomainFactory(resolver, selectorFactory) ==== _Signature_ ```java public fflib_DynamicDomainFactory(fflib_IAppBindingResolver resolver, fflib_ISelectorFactory selectorFactory) ``` ==== _Parameters_ _**resolver**_ + A reference to the resolve instance, which dynamically links an Object type to its Domain Constructor implementation class _**selectorFactory**_ + A reference to the selector factory instance, to query records when a domain is created via record Ids. ==== _Example_ ```java public class Application { private static fflib_IAppBindingResolver bindingResolver = new fflib_AppBindingResolver(); public static final fflib_ISelectorFactory Selector = new fflib_DynamicSelectorFactory(bindingResolver); public static final fflib_IDomainFactory Domain = new fflib_DynamicDomainFactory(bindingResolver, Selector); } ``` ___