diff --git a/sfdx-source/apex-extensions/main/application/classic/classes/fflib_ClassicDomainFactory.cls b/sfdx-source/apex-extensions/main/application/classic/classes/fflib_ClassicDomainFactory.cls index 495bc97..2760453 100644 --- a/sfdx-source/apex-extensions/main/application/classic/classes/fflib_ClassicDomainFactory.cls +++ b/sfdx-source/apex-extensions/main/application/classic/classes/fflib_ClassicDomainFactory.cls @@ -104,7 +104,7 @@ public virtual class fflib_ClassicDomainFactory **/ public virtual fflib_IDomain newInstance(Set recordIds, Schema.SObjectType sObjectType) { - return newInstance(selectorFactory.selectById(recordIds, sObjectType), sObjectType); + return newInstance(selectorFactory.selectById(recordIds)); } /** diff --git a/sfdx-source/apex-extensions/main/application/dynamic/classes/fflib_DynamicDomainFactory.cls b/sfdx-source/apex-extensions/main/application/dynamic/classes/fflib_DynamicDomainFactory.cls index 57b54eb..aa85666 100644 --- a/sfdx-source/apex-extensions/main/application/dynamic/classes/fflib_DynamicDomainFactory.cls +++ b/sfdx-source/apex-extensions/main/application/dynamic/classes/fflib_DynamicDomainFactory.cls @@ -56,7 +56,7 @@ public virtual class fflib_DynamicDomainFactory public fflib_IDomain newInstance(Set recordIds, SObjectType sObjectType) { - return newInstance(this.selectorFactory.selectById(recordIds, sObjectType)); + return newInstance(this.selectorFactory.selectById(recordIds)); } public fflib_IDomain newInstance(List records) diff --git a/sfdx-source/apex-extensions/main/application/dynamic/classes/fflib_DynamicSelectorFactory.cls b/sfdx-source/apex-extensions/main/application/dynamic/classes/fflib_DynamicSelectorFactory.cls index 60e51e6..27c4a97 100644 --- a/sfdx-source/apex-extensions/main/application/dynamic/classes/fflib_DynamicSelectorFactory.cls +++ b/sfdx-source/apex-extensions/main/application/dynamic/classes/fflib_DynamicSelectorFactory.cls @@ -129,7 +129,7 @@ public virtual class fflib_DynamicSelectorFactory public Set getRelatedIds(Schema.SObjectField relationshipField) { - return getIdFieldValues(relationshipField).getIds(); + return getIdFieldValues(relationshipField); } } diff --git a/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_IDomainFactory.cls b/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_IDomainFactory.cls deleted file mode 100644 index 187b19c..0000000 --- a/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_IDomainFactory.cls +++ /dev/null @@ -1,175 +0,0 @@ -/** - * File Name: fflib_IDomainFactory - * @description Interface for creating instances of Domain classes - * - * @author architect ir. Wilhelmus G.J. Velzeboer - * - * Copyright (c), W.G.J. Velzeboer, - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * - Redistributions of source code must retain the above author notice, - * this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - Neither the name of the author nor the names of its contributors - * may be used to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -public interface fflib_IDomainFactory -{ - /** - * Dynamically constructs an instance of a Domain class for the given record Ids - * Internally uses the Selector Factory to query the records before passing to a - * dynamically constructed instance of the application Apex Domain class - * - * @param recordIds A list of Id's of the same type - * @exception Throws an exception via the Selector Factory if the Ids are not all of the same SObjectType - * - * @return Instance of the Domain - **/ - fflib_IDomain newInstance(Set recordIds); - - /** - * Dynamically constructs an instance of a Domain class for the given record Ids - * Internally uses the Selector Factory to query the records before passing to a - * dynamically constructed instance of the application Apex Domain class - * - * @param recordIds A list of Id's of the same type - * @param sObjectType The Schema.SObjectType of the record Ids, - * Providing this parameter will omit the framework from checking if the Id's are all the same - * and of which SObjectType they are. - * - * @exception Throws an exception via the Selector Factory if the Ids are not all of the same SObjectType - * - * @return Instance of the Domain - **/ - fflib_IDomain newInstance(Set recordIds, Schema.SObjectType sObjectType); - - /** - * Dynamically constructs an instance of the Domain class for the given records - * Will return a Mock implementation if one has been provided via setMock - * - * @param records A concrete list of records, e.g.; `List` or `List`) - * - * @exception Throws an exception if the SObjectType cannot be determined from the list - * or the constructor for Domain class was not registered for the SObjectType - * - * @return Instance of the Domain containing the given records - **/ - fflib_IDomain newInstance(List records); - - /** - * Dynamically constructs an instance of the Domain class for the given records - * Will return a Mock implementation if one has been provided via setMock - * - * @param objects A concrete list of Objects, e.g.; `List` or `List`) - * @param objectType - * - * @exception Throws an exception if the SObjectType cannot be determined from the list - * or the constructor for Domain class was not registered for the SObjectType - * - * @return Instance of the Domain containing the given Objects - **/ - fflib_IDomain newInstance(List objects, Object objectType); - - /** - * Dynamically constructs an instance of the Domain class for the given records and SObjectType - * Will return a Mock implementation if one has been provided via setMock - * - * @param records A list records - * @param sObjectType SObjectType for list of records - * - * @exception Throws an exception if the SObjectType is not specified or if constructor for Domain class was not registered for the SObjectType - * - * @remark Will support List but all records in the list will be assumed to be of - * the type specified in sObjectType - * - * @return Instance of the Domain containing the given records - **/ - fflib_IDomain newInstance(List records, Schema.SObjectType sObjectType); - - /** - * Registers a mock in the Factory by providing a mock instance of a domain - * This method is only available for backward compatibility for - * domains which are implementations of fflib_ISObjectDomain - * - * @param mockDomain The instance of the Domain mock - * - * @example - * - * fflib_ApexMocks mocks = new fflib_ApexMocks(); - * IAccounts domainMock = (IAccounts) mocks.mock(IAccounts.class); - * mocks.startStubbing(); - * mocks.when(domainMock.getType()).thenReturn(Schema.Account.SObjectType); - * ... - * mocks.stopStubbing(); - * - * Application.Domain.setMock((fflib_ISObjectDomain) domainMock); - */ - void setMock(fflib_ISObjectDomain mockDomain); - - /** - * Registers a mock implementation in the Factory for the provided sObjectType - * This method is only available for backward compatibility for - * domains which are implementations of fflib_ISObjectDomain - * - * @param sObjectType The SObjectType of the Domain mock, - * avoids the need to stub the mock to return its SObjectType - * @param mockDomain The instance of the Domain mock - * - * @example - * - * fflib_ApexMocks mocks = new fflib_ApexMocks(); - * IAccounts domainMock = (IAccounts) mocks.mock(IAccounts.class); - * - * Application.Domain.setMock(Schema.Account.SObjectType, domainMock); - */ - void setMock(Schema.SObjectType sObjectType, fflib_ISObjectDomain mockDomain); - - /** - * Registers a mock in the Factory by providing a mock instance of a domain - * - * @param mockDomain The instance of the Domain mock - * - * @example - * - * fflib_ApexMocks mocks = new fflib_ApexMocks(); - * IAccounts domainMock = (IAccounts) mocks.mock(IAccounts.class); - * mocks.startStubbing(); - * mocks.when(domainMock.getType()).thenReturn(Schema.Account.SObjectType); - * ... - * mocks.stopStubbing(); - * - * Application.Domain.setMock(domainMock); - */ - void setMock(fflib_IDomain mockDomain); - - /** - * Registers a mock implementation in the Factory for the provided sObjectType - * - * @param domainType The ObjectType of the Domain mock, - * avoids the need to stub the mock to return its ObjectType - * @param mockDomain The instance of the Domain mock - * - * @example - * - * fflib_ApexMocks mocks = new fflib_ApexMocks(); - * IAccounts domainMock = (IAccounts) mocks.mock(IAccounts.class); - * - * Application.Domain.setMock(domainMock); - */ - void setMock(Object domainType, fflib_IDomain mockDomain); -} \ No newline at end of file diff --git a/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_IDomainFactory.cls-meta.xml b/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_IDomainFactory.cls-meta.xml deleted file mode 100644 index f928c8e..0000000 --- a/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_IDomainFactory.cls-meta.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - 53.0 - Active - diff --git a/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_ISelectorFactory.cls b/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_ISelectorFactory.cls deleted file mode 100644 index 887b8fa..0000000 --- a/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_ISelectorFactory.cls +++ /dev/null @@ -1,104 +0,0 @@ -/** - * File Name: fflib_ISelectorFactory - * @description Interface for creating instances of Selector classes - * - * @author architect ir. Wilhelmus G.J. Velzeboer - * - * Copyright (c), W.G.J. Velzeboer, - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * - Redistributions of source code must retain the above author notice, - * this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - Neither the name of the author nor the names of its contributors - * may be used to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -public interface fflib_ISelectorFactory -{ - /** - * Creates a new instance of the associated Apex Class implementing fflib_ISObjectSelector - * for the given SObjectType, or if provided via setMock returns the Mock implementation - * - * @param sObjectType An SObjectType token, e.g. Account.SObjectType - * - * @return Instance of fflib_ISObjectSelector - **/ - fflib_ISObjectSelector newInstance(Schema.SObjectType sObjectType); - - /** - * Helper method to query the given SObject records - * Internally creates an instance of the registered Selector and calls its - * selectSObjectById method - * - * @param recordIds The SObject record Ids, must be all the same SObjectType - * @exception Is thrown if the record Ids are not all the same or the SObjectType is not registered - * - * @return List of queried records - **/ - List selectById(Set recordIds); - - /** - * Helper method to query the given SObject records - * Internally creates an instance of the registered Selector and calls its - * selectSObjectById method - * - * @param recordIds The SObject record Ids, must be all the same SObjectType - * @exception Is thrown if the record Ids are not all the same or the SObjectType is not registered - * @param sObjectType The SObjectType of the provided Ids - * - * @return List of queried records - **/ - List selectById(Set recordIds, Schema.SObjectType sObjectType); - - /** - * Helper method to query related records to those provided, for example - * if passed a list of Opportunity records and the Account Id field will - * construct internally a list of Account Ids and call the registered - * Account selector to query the related Account records, e.g. - * - * List accounts = - * (List) Application.Selector.selectByRelationship(myOpps, Opportunity.AccountId); - * - * @param relatedRecords used to extract the related record Ids, e.g. Opportunity records - * @param relationshipField field in the passed records that contains the relationship records to query, e.g. Opportunity.AccountId - * - * @return List of queried records - **/ - List selectByRelationship(List relatedRecords, SObjectField relationshipField); - - /** - * Creates or replaces an existing binding for another - * - * @param sObjectType The SObjectType of the selector to replace - * @param replacementImplType The implementation type of the replacement - */ - void replaceWith(Schema.SObjectType sObjectType, Type replacementImplType); - - /** - * @param selectorInstance The instance of the mocked selector - */ - void setMock(fflib_ISObjectSelector selectorInstance); - - /** - * - * @param sObjectType The SObjectType of the selector mock, - * avoids the need to stub the mock to return its SObjectType - * @param selectorInstance The instance of the mocked selector - */ - void setMock(Schema.SObjectType sObjectType, fflib_ISObjectSelector selectorInstance); -} \ No newline at end of file diff --git a/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_ISelectorFactory.cls-meta.xml b/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_ISelectorFactory.cls-meta.xml deleted file mode 100644 index f928c8e..0000000 --- a/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_ISelectorFactory.cls-meta.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - 53.0 - Active - diff --git a/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_IServiceFactory.cls b/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_IServiceFactory.cls deleted file mode 100644 index 2f56c25..0000000 --- a/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_IServiceFactory.cls +++ /dev/null @@ -1,58 +0,0 @@ -/** - * File Name: fflib_IServiceFactory - * @description Interface for creating instances of Service classes - * - * @author architect ir. Wilhelmus G.J. Velzeboer - * - * Copyright (c), W.G.J. Velzeboer, - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * - Redistributions of source code must retain the above author notice, - * this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - Neither the name of the author nor the names of its contributors - * may be used to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -public interface fflib_IServiceFactory -{ - /** - * Returns a new instance of the Apex class associated with the given Apex interface - * Will return any mock implementation of the interface provided via setMock - * Note that this method will not check the configured Apex class actually implements the interface - * - * @param serviceInterfaceType Apex interface type - * @exception Is thrown if there is no registered Apex class for the interface type - * - * @return Instance of the requested service class interface type - **/ - Object newInstance(Type serviceInterfaceType); - - /** - * Creates or replaces an existing binding for another - * - * @param serviceInterfaceType The Interface type to replace its implementation - * @param replacementImplType The implementation type of the replacement - */ - void replaceWith(Type serviceInterfaceType, Type replacementImplType); - - /** - * @param serviceInterfaceType The interface type to mock - * @param serviceImpl The mock implementation - */ - void setMock(Type serviceInterfaceType, Object serviceImpl); -} \ No newline at end of file diff --git a/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_IServiceFactory.cls-meta.xml b/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_IServiceFactory.cls-meta.xml deleted file mode 100644 index f928c8e..0000000 --- a/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_IServiceFactory.cls-meta.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - 53.0 - Active - diff --git a/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_IUnitOfWorkFactory.cls b/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_IUnitOfWorkFactory.cls deleted file mode 100644 index be4c5aa..0000000 --- a/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_IUnitOfWorkFactory.cls +++ /dev/null @@ -1,80 +0,0 @@ -/** - * File Name: fflib_IUnitOfWorkFactory - * @description Interface for creating instances of fflib_ISObjectUnitOfWork - * - * @author architect ir. Wilhelmus G.J. Velzeboer - * - * Copyright (c), W.G.J. Velzeboer, - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * - Redistributions of source code must retain the above author notice, - * this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - Neither the name of the author nor the names of its contributors - * may be used to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -public interface fflib_IUnitOfWorkFactory -{ - /** - * Returns a new fflib_SObjectUnitOfWork configured with the - * SObjectType list provided in the constructor, returns a Mock implementation - * if set via the setMock method - * - * @return Instance of fflib_ISObjectUnitOfWork - **/ - fflib_ISObjectUnitOfWork newInstance(); - - /** - * Returns a new fflib_SObjectUnitOfWork configured with the - * SObjectType list provided in the constructor, returns a Mock implementation - * if set via the setMock method - * - * @param dml A custom implementation of the IDML to perform the database operations - * - * @return Instance of fflib_ISObjectUnitOfWork - **/ - fflib_ISObjectUnitOfWork newInstance(fflib_SObjectUnitOfWork.IDML dml); - - /** - * Returns a new fflib_SObjectUnitOfWork configured with the - * SObjectType list specified, returns a Mock implementation - * if set via the setMock method - * - * @param objectTypes The hierarchical structure of the SObjectTypes - * - * @return Instance of fflib_ISObjectUnitOfWork - **/ - fflib_ISObjectUnitOfWork newInstance(List objectTypes); - - /** - * Returns a new fflib_SObjectUnitOfWork configured with the - * SObjectType list specified, returns a Mock implementation - * if set via the setMock method - * - * @param objectTypes The hierarchical structure of the SObjectTypes - * @param dml A custom implementation of the IDML to perform the database operations - * - * @return Instance of fflib_ISObjectUnitOfWork - **/ - fflib_ISObjectUnitOfWork newInstance(List objectTypes, fflib_SObjectUnitOfWork.IDML dml); - - /** - * @param mockUow A mock implementation for the unitOfWork factory - */ - void setMock(fflib_ISObjectUnitOfWork mockUow); -} \ No newline at end of file diff --git a/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_IUnitOfWorkFactory.cls-meta.xml b/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_IUnitOfWorkFactory.cls-meta.xml deleted file mode 100644 index f928c8e..0000000 --- a/sfdx-source/apex-extensions/main/application/main/classes/interfaces/fflib_IUnitOfWorkFactory.cls-meta.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - 53.0 - Active - diff --git a/sfdx-source/apex-extensions/main/default/classes/domains/fflib_SObjects2.cls b/sfdx-source/apex-extensions/main/default/classes/domains/fflib_SObjects2.cls index 96372d4..0da316f 100644 --- a/sfdx-source/apex-extensions/main/default/classes/domains/fflib_SObjects2.cls +++ b/sfdx-source/apex-extensions/main/default/classes/domains/fflib_SObjects2.cls @@ -132,61 +132,6 @@ public virtual class fflib_SObjects2 return result; } - /** - * Adds an error message to the records in the domain - * - * @param message The error message to add to each record - */ - @TestVisible - protected virtual void addError(String message) - { - for (SObject record : getRecords()) - { - record.addError(error(message, record)); - } - } - - /** - * Adds an error message to the a field records in the domain - * - * @param sObjectField The field where the error should be reported - * @param message The error message to add to the given field on each record - */ - @TestVisible - protected virtual void addError(Schema.SObjectField sObjectField, String message) - { - for (SObject record : getRecords()) - { - record.addError(sObjectField, error(message, record, sObjectField)); - } - } - - /** - * Clear the field value on all the records of the domain - * @param sObjectField The field to nullify - */ - @TestVisible - protected virtual void clearField(Schema.SObjectField sObjectField) - { - clearFields(new Set{ sObjectField }); - } - - /** - * Clear the field values on all the records of the domain - * @param sObjectFields The fields to nullify - */ - @TestVisible - protected virtual void clearFields(Set sObjectFields) - { - for (SObject record : getRecords()) - { - for (SObjectField sObjectField : sObjectFields) - { - record.put(sObjectField, null); - } - } - } - /** * @param sObjectField The Schema.SObjectField to get their Id values * @@ -486,29 +431,6 @@ public virtual class fflib_SObjects2 return result; } - /** - * Gets the values from the given Id field - * - * @param sObjectField The Schema.SObjectField to get their Id values - * Fields containing null values are omitted - * - * @return The Id values of the given sObjectField, null values are omitted - */ - @TestVisible - protected virtual fflib_Ids getIdFieldValues(Schema.SObjectField sObjectField) - { - Set result = new Set(); - for (SObject record : getRecords()) - { - Object fieldValue = record.get(sObjectField); - if (fieldValue == null) continue; - - result.add(Id.valueOf(String.valueOf(fieldValue))); - } - return new fflib_Ids(result); - // todo - alternative return to avoid code duplications: return new Ids(getFieldValues(sObjectField)); - } - /** * @param sObjectField The Schema.SObjectField to get their Id values * @param criteria The criteria condition that must be met to include the value in the return @@ -518,8 +440,8 @@ public virtual class fflib_SObjects2 @TestVisible protected virtual fflib_Ids getIdFieldValues(Schema.SObjectField sObjectField, fflib_Criteria criteria) { - return new fflib_SObjects2(getRecords(criteria), getSObjectType()) - .getIdFieldValues(sObjectField); + return new fflib_Ids(new fflib_SObjects2(getRecords(criteria), getSObjectType()) + .getIdFieldValues(sObjectField)); } /** @@ -896,23 +818,6 @@ public virtual class fflib_SObjects2 return result; } - /** - * Gets the values for the provided String field - * - * @param sObjectField The Schema.SObjectField to get their values - * - * @return The String values of the given sObjectField - */ - @TestVisible - protected virtual fflib_Strings getStringFieldValues(Schema.SObjectField sObjectField) - { - Set result = new Set(); - for (SObject record : getRecords()) - { - result.add(String.valueOf(record.get(sObjectField))); - } - return new fflib_Strings(result); - } /** * @param sObjectField The Schema.SObjectField to get their values @@ -923,8 +828,8 @@ public virtual class fflib_SObjects2 @TestVisible protected virtual fflib_Strings getStringFieldValues(Schema.SObjectField sObjectField, fflib_Criteria criteria) { - return new fflib_SObjects2(getRecords(criteria), getSObjectType()) - .getStringFieldValues(sObjectField); + return new fflib_Strings(new fflib_SObjects2(getRecords(criteria), getSObjectType()) + .getStringFieldValues(sObjectField)); } /** diff --git a/sfdx-source/apex-extensions/tests/classes/application/fflib_DynamicDomainFactoryTest.cls b/sfdx-source/apex-extensions/tests/classes/application/fflib_DynamicDomainFactoryTest.cls index 6e298f8..6cef48b 100644 --- a/sfdx-source/apex-extensions/tests/classes/application/fflib_DynamicDomainFactoryTest.cls +++ b/sfdx-source/apex-extensions/tests/classes/application/fflib_DynamicDomainFactoryTest.cls @@ -35,7 +35,7 @@ public class fflib_DynamicDomainFactoryTest new fflib_AppBindingResolver(); - private static final fflib_IDomainFactory Domain = + private static final fflib_DynamicDomainFactory Domain = new fflib_DynamicDomainFactory( bindingResolver, fflib_DynamicSelectorFactoryTest.Selector); diff --git a/sfdx-source/apex-extensions/tests/classes/application/fflib_DynamicSelectorFactoryTest.cls b/sfdx-source/apex-extensions/tests/classes/application/fflib_DynamicSelectorFactoryTest.cls index fedbedc..f52c905 100644 --- a/sfdx-source/apex-extensions/tests/classes/application/fflib_DynamicSelectorFactoryTest.cls +++ b/sfdx-source/apex-extensions/tests/classes/application/fflib_DynamicSelectorFactoryTest.cls @@ -36,7 +36,7 @@ public class fflib_DynamicSelectorFactoryTest new fflib_AppBindingResolver(); @TestVisible - private static final fflib_ISelectorFactory Selector = + private static final fflib_DynamicSelectorFactory Selector = new fflib_DynamicSelectorFactory(bindingResolver) .setSharingMode(fflib_SharingMode.WithSharing); diff --git a/sfdx-source/apex-extensions/tests/classes/application/fflib_DynamicServiceFactoryTest.cls b/sfdx-source/apex-extensions/tests/classes/application/fflib_DynamicServiceFactoryTest.cls index 7f99d48..68fe81c 100644 --- a/sfdx-source/apex-extensions/tests/classes/application/fflib_DynamicServiceFactoryTest.cls +++ b/sfdx-source/apex-extensions/tests/classes/application/fflib_DynamicServiceFactoryTest.cls @@ -128,7 +128,7 @@ public class fflib_DynamicServiceFactoryTest private static fflib_IAppBindingResolver bindingResolver = new fflib_AppBindingResolver(); - private static final fflib_IServiceFactory Service = + private static final fflib_DynamicServiceFactory Service = new fflib_DynamicServiceFactory(bindingResolver) .setSharingMode(fflib_SharingMode.WithSharing); diff --git a/sfdx-source/apex-extensions/tests/classes/domains/fflib_SObjects2Test.cls b/sfdx-source/apex-extensions/tests/classes/domains/fflib_SObjects2Test.cls index 7cb06b7..f0f3497 100644 --- a/sfdx-source/apex-extensions/tests/classes/domains/fflib_SObjects2Test.cls +++ b/sfdx-source/apex-extensions/tests/classes/domains/fflib_SObjects2Test.cls @@ -46,11 +46,10 @@ private class fflib_SObjects2Test } ); - domain.addError('Oops'); domain.addError(Schema.Account.Name,'Oops'); System.assertEquals( - 4, + 2, fflib_SObjects.Errors.getAll().size() ); } @@ -425,7 +424,7 @@ private class fflib_SObjects2Test System.assert( domain.getStringFieldValues(Schema.Account.ShippingCountry) .containsAll( - new Set + new Set { 'USA', 'Ireland',