Class ChangeContainerOverridableDomainMapperMember

  • All Implemented Interfaces:
    com.broadleafcommerce.common.extension.data.DataRoutePartitionAware, DomainMapper, DomainMapperMember, org.springframework.core.Ordered

    public class ChangeContainerOverridableDomainMapperMember
    extends Object
    implements DomainMapperMember
    A DomainMapperMember implementation which is responsible for mapping the ChangeContainer for a ChangeContainerOverridable projection domain over to its repository domain. This allows the projection domains to support row-level overrides of change container information during bulk operations.
    Author:
    Nick Crum (ncrum)
    • Constructor Detail

      • ChangeContainerOverridableDomainMapperMember

        public ChangeContainerOverridableDomainMapperMember​(com.broadleafcommerce.common.extension.TypeFactory typeFactory)
    • Method Detail

      • getDataRoutePartition

        public String getDataRoutePartition()
        Specified by:
        getDataRoutePartition in interface com.broadleafcommerce.common.extension.data.DataRoutePartitionAware
      • getOrder

        public int getOrder()
        Specified by:
        getOrder in interface DomainMapperMember
        Specified by:
        getOrder in interface org.springframework.core.Ordered
      • fromBusinessDomain

        public <D> D fromBusinessDomain​(Object businessDomain,
                                        D repositoryDomain,
                                        ContextInfo contextInfo)
        Description copied from interface: DomainMapperMember
        Map and return a populated repository domain instance, based on information provided in a business domain. The passed repositoryDomain parameter is generally transformed and returned.
        Specified by:
        fromBusinessDomain in interface DomainMapperMember
        Type Parameters:
        D - The repository domain type
        Parameters:
        businessDomain - The business instance containing the relevant property information
        repositoryDomain - The repository specific instance to affect and return
        contextInfo - The context information used to make tracking determinations relevant to sandboxing and multitenant concerns. See TrackableRepository for more info on persistence behavior based on context.
        Returns:
        The populated repository domain instance. Should return null if no action taken.
      • modifyMap

        public <D,​P> D modifyMap​(D repositoryDomain,
                                       P businessDomain,
                                       ContextInfo contextInfo,
                                       boolean allowNull)
        Description copied from interface: DomainMapper
        Perform a mapping operation from business domain instance to persistence specific instance, presumably modifying the state of the persistence specific instance.
        Specified by:
        modifyMap in interface DomainMapper
        Type Parameters:
        D - The repository domain type
        P - The business domain type
        Parameters:
        repositoryDomain - The persistence domain instance to modify
        businessDomain - The business instance containing changes to map to the repository domain
        contextInfo - The context information used to make tracking determinations relevant to sandboxing and multitenant concerns. See TrackableRepository for more info on persistence behavior based on context.
        allowNull - Whether or not null values in properties in the payload instance should be ignored during the mapping operation.
        Returns:
        The modified repository domain instance. Return null if no action taken.
      • overrideChangeContainerIfApplicable

        protected <D> D overrideChangeContainerIfApplicable​(Object businessDomain,
                                                            D repositoryDomain)