Class DefaultPaymentAccountService<P extends PaymentAccount>

  • All Implemented Interfaces:
    PaymentAccountService<P>, com.broadleafcommerce.data.tracking.core.service.CrudEntityService<P>, com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityService<P>

    public class DefaultPaymentAccountService<P extends PaymentAccount>
    extends com.broadleafcommerce.data.tracking.core.service.BaseRsqlCrudEntityService<P>
    implements PaymentAccountService<P>
    • Constructor Summary

      Constructors 
      Constructor Description
      DefaultPaymentAccountService​(PaymentAccountRepository<com.broadleafcommerce.data.tracking.core.Trackable> paymentAccountRepository, CustomerService<Customer> customerService, com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityHelper helper, com.broadleafcommerce.common.extension.TypeFactory typeFactory)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      PaymentAccount addPaymentAccount​(@NonNull String customerId, P paymentAccountRequest, boolean makeDefaultAccount, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Pass the paymentAccount JpaPaymentAccount for processing the default account relationship with the customer before saving to the data store.
      protected CustomerRef createCustomerRefFromCustomer​(@NonNull Customer customer)
      Creates a CustomerRef based on the provided Customer object
      void delete​(@NonNull String customerId, @NonNull String paymentAccountId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Pass the ID of the paymentAccount JpaPaymentAccount and the owning customer for removal of the paymentAccount.
      protected CustomerService<Customer> getCustomerService()  
      protected PaymentAccountRepository<com.broadleafcommerce.data.tracking.core.Trackable> getPaymentAccountRepository()  
      protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()  
      org.springframework.data.domain.Page<P> readAllByCustomerId​(@NonNull String customerId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo, org.springframework.data.domain.Pageable page, cz.jirutka.rsql.parser.ast.Node filters)
      Pass the Customer ID to find all the active paymentAccount JpaPaymentAccount entities
      P readByContextIdAndCustomerId​(@NonNull String id, @NonNull String customerId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Pass the ID of the paymentAccount JpaPaymentAccount and the owning customer ID for retrieval of the paymentAccount from the data store.
      List<P> readPaymentAccountsByContextId​(@NonNull List<String> ids, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Pass a list of paymentAccount IDs to return a list of the paymentAccounts JpaPaymentAccount associated with those IDs.
      P update​(P paymentAccount, @NonNull Customer customer, boolean makeDefaultAccount, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Pass the updated paymentAccount JpaPaymentAccount and the owning customer for persistence to the data store.
      • Methods inherited from class com.broadleafcommerce.data.tracking.core.service.BaseRsqlCrudEntityService

        getRsqlHelper, readAll, readAll, readAll, readAll
      • Methods inherited from class com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService

        convertFromPersistentDomain, convertToPersistentDomain, create, createAll, createAllAllowingPartialSuccess, delete, getHelper, getRepository, getSortPositionStrategy, readAll, readAll, readAll, readAllByContextId, readByContextId, replace, replaceAll, replaceAllAllowingPartialSuccess, setSortPositionStrategy, update, updateAll, updateAllAllowingPartialSuccess, updateSort
      • Methods inherited from interface com.broadleafcommerce.data.tracking.core.service.CrudEntityService

        create, createAll, createAllAllowingPartialSuccess, delete, readAll, readAll, readAll, readAllByContextId, readByContextId, replace, replaceAll, replaceAllAllowingPartialSuccess, update, updateAll, updateAllAllowingPartialSuccess, updateSort
      • Methods inherited from interface com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityService

        readAll, readAll, readAll, readAll
    • Constructor Detail

      • DefaultPaymentAccountService

        public DefaultPaymentAccountService​(PaymentAccountRepository<com.broadleafcommerce.data.tracking.core.Trackable> paymentAccountRepository,
                                            CustomerService<Customer> customerService,
                                            com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityHelper helper,
                                            com.broadleafcommerce.common.extension.TypeFactory typeFactory)
    • Method Detail

      • readAllByCustomerId

        public org.springframework.data.domain.Page<P> readAllByCustomerId​(@NonNull
                                                                           @NonNull String customerId,
                                                                           @Nullable
                                                                           com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo,
                                                                           @Nullable
                                                                           org.springframework.data.domain.Pageable page,
                                                                           @Nullable
                                                                           cz.jirutka.rsql.parser.ast.Node filters)
        Description copied from interface: PaymentAccountService
        Pass the Customer ID to find all the active paymentAccount JpaPaymentAccount entities
        Specified by:
        readAllByCustomerId in interface PaymentAccountService<P extends PaymentAccount>
        Parameters:
        customerId - the ID of the owning customer
        contextInfo - context information surrounding sandboxing and multitenant state
        page - the requested page of results from the database
        filters - An RSQL filter used to narrow query results. May be EmptyNode if no filters should be applied.
        Returns:
        the payment accounts in the data store with that customer ID.
      • readByContextIdAndCustomerId

        public P readByContextIdAndCustomerId​(@NonNull
                                              @NonNull String id,
                                              @NonNull
                                              @NonNull String customerId,
                                              @Nullable
                                              com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Description copied from interface: PaymentAccountService
        Pass the ID of the paymentAccount JpaPaymentAccount and the owning customer ID for retrieval of the paymentAccount from the data store.
        Specified by:
        readByContextIdAndCustomerId in interface PaymentAccountService<P extends PaymentAccount>
        Parameters:
        id - the ID of the paymentAccount to be found
        customerId - the ID of the owning customer
        contextInfo - context information surrounding sandboxing and multitenant state
        Returns:
        the payment account in the data store if found
      • addPaymentAccount

        @Transactional("customerTransactionManager")
        public PaymentAccount addPaymentAccount​(@NonNull
                                                @NonNull String customerId,
                                                @NonNull
                                                P paymentAccountRequest,
                                                boolean makeDefaultAccount,
                                                @Nullable
                                                com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Description copied from interface: PaymentAccountService
        Pass the paymentAccount JpaPaymentAccount for processing the default account relationship with the customer before saving to the data store.
        Specified by:
        addPaymentAccount in interface PaymentAccountService<P extends PaymentAccount>
        Parameters:
        customerId - the ID of the owning customer
        paymentAccountRequest - the paymentAccount to be persisted
        makeDefaultAccount - whether this is the default paymentAccount for the customer
        contextInfo - context information surrounding sandboxing and multitenant state
        Returns:
        the newly created payment account
      • update

        @Transactional("customerTransactionManager")
        public P update​(@NonNull
                        P paymentAccount,
                        @NonNull
                        @NonNull Customer customer,
                        boolean makeDefaultAccount,
                        @Nullable
                        com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Description copied from interface: PaymentAccountService
        Pass the updated paymentAccount JpaPaymentAccount and the owning customer for persistence to the data store.
        Specified by:
        update in interface PaymentAccountService<P extends PaymentAccount>
        Parameters:
        paymentAccount - the paymentAccount to be persisted
        customer - the owning customer
        makeDefaultAccount - whether this is the default paymentAccount for the customer
        contextInfo - context information surrounding sandboxing and multitenant state
        Returns:
        the payment account after it has been updated
      • delete

        @Transactional("customerTransactionManager")
        public void delete​(@NonNull
                           @NonNull String customerId,
                           @NonNull
                           @NonNull String paymentAccountId,
                           @Nullable
                           com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Description copied from interface: PaymentAccountService
        Pass the ID of the paymentAccount JpaPaymentAccount and the owning customer for removal of the paymentAccount.
        Specified by:
        delete in interface PaymentAccountService<P extends PaymentAccount>
        Parameters:
        customerId - the ID of the owning customer
        paymentAccountId - the ID of paymentAccount to be removed
        contextInfo - context information surrounding sandboxing and multitenant state
      • readPaymentAccountsByContextId

        public List<P> readPaymentAccountsByContextId​(@NonNull
                                                      @NonNull List<String> ids,
                                                      @Nullable
                                                      com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Description copied from interface: PaymentAccountService
        Pass a list of paymentAccount IDs to return a list of the paymentAccounts JpaPaymentAccount associated with those IDs.
        Specified by:
        readPaymentAccountsByContextId in interface PaymentAccountService<P extends PaymentAccount>
        Parameters:
        ids - the IDs of the paymentAccounts to be retrieved
        contextInfo - context information surrounding sandboxing and multitenant state
        Returns:
        the payment accounts found by ID in the data store
      • createCustomerRefFromCustomer

        protected CustomerRef createCustomerRefFromCustomer​(@NonNull
                                                            @NonNull Customer customer)
        Creates a CustomerRef based on the provided Customer object
        Parameters:
        customer - the customer object that is used to build the CustomerRef
        Returns:
        a CustomerRef based on the provided Customer object
      • getPaymentAccountRepository

        protected PaymentAccountRepository<com.broadleafcommerce.data.tracking.core.Trackable> getPaymentAccountRepository()
      • getTypeFactory

        protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()