Class ChangeContainerOverridableDomainMapperMember

java.lang.Object
com.broadleafcommerce.data.tracking.core.mapping.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 Details

    • ChangeContainerOverridableDomainMapperMember

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

    • 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)