Class JpaOrder

  • All Implemented Interfaces:
    com.broadleafcommerce.common.messaging.notification.domain.NotificationStateAware, com.broadleafcommerce.data.tracking.core.ApplicationTrackable<com.broadleafcommerce.data.tracking.jpa.filtering.domain.ApplicationJpaTracking>, com.broadleafcommerce.data.tracking.core.mapping.BusinessTypeAware, com.broadleafcommerce.data.tracking.core.mapping.ModelMapperMappable, com.broadleafcommerce.data.tracking.core.search.Indexable, com.broadleafcommerce.data.tracking.core.Trackable, com.broadleafcommerce.data.tracking.core.TypedTrackable<com.broadleafcommerce.data.tracking.jpa.filtering.domain.ApplicationJpaTracking>, com.broadleafcommerce.money.CurrencyConsumer, Serializable, javax.money.CurrencySupplier

    @Entity
    @TrackableExtension(APPLICATION)
    public class JpaOrder
    extends Object
    implements com.broadleafcommerce.data.tracking.core.ApplicationTrackable<com.broadleafcommerce.data.tracking.jpa.filtering.domain.ApplicationJpaTracking>, Serializable, com.broadleafcommerce.data.tracking.core.mapping.ModelMapperMappable, com.broadleafcommerce.data.tracking.core.mapping.BusinessTypeAware, com.broadleafcommerce.data.tracking.core.search.Indexable, javax.money.CurrencySupplier, com.broadleafcommerce.money.CurrencyConsumer
    JPA implementation of Order
    See Also:
    Serialized Form
    • Constructor Detail

      • JpaOrder

        public JpaOrder()
    • Method Detail

      • fromMe

        @NonNull
        public org.modelmapper.ModelMapper fromMe()
        Specified by:
        fromMe in interface com.broadleafcommerce.data.tracking.core.mapping.ModelMapperMappable
      • addFromMeOrderItemMappings

        protected void addFromMeOrderItemMappings​(org.modelmapper.ModelMapper mapper)
      • addFromMeOrderMappings

        protected void addFromMeOrderMappings​(org.modelmapper.ModelMapper mapper)
      • fromMeParentOrderBackReferenceAdder

        protected <O extends com.broadleafcommerce.order.client.domain.Order,​J extends JpaOrder> O fromMeParentOrderBackReferenceAdder​(org.modelmapper.spi.MappingContext<J,​O> mappingContext)
        Used as the TypeMap.setPostConverter(Converter) for Order in fromMe().

        Explicitly sets the OrderItem.getOrder() parent order back reference for each item in Order.getOrderItems() to the parent instance being mapped.

        As documented in TypeMap.include(Class, Class), extensions will not automatically inherit this converter, and must manually set it on the extended type map.

        Parameters:
        mappingContext - the model mapper mapping context
        Returns:
        the business-domain order after setting each of its items' parent order reference to itself
      • toMe

        @NonNull
        public org.modelmapper.ModelMapper toMe()
        Specified by:
        toMe in interface com.broadleafcommerce.data.tracking.core.mapping.ModelMapperMappable
      • addToMeOrderItemMappings

        protected void addToMeOrderItemMappings​(org.modelmapper.ModelMapper mapper)
      • addToMeOrderMappings

        protected void addToMeOrderMappings​(org.modelmapper.ModelMapper mapper)
      • preFromMe

        public void preFromMe​(com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo,
                              @NonNull
                              Object businessDomain)
        Specified by:
        preFromMe in interface com.broadleafcommerce.data.tracking.core.mapping.ModelMapperMappable
      • preToMe

        public void preToMe​(com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo,
                            @NonNull
                            Object businessDomain)
        Specified by:
        preToMe in interface com.broadleafcommerce.data.tracking.core.mapping.ModelMapperMappable
      • toMeParentOrderBackReferenceAdder

        protected <O extends com.broadleafcommerce.order.client.domain.Order,​J extends JpaOrder> J toMeParentOrderBackReferenceAdder​(org.modelmapper.spi.MappingContext<O,​J> mappingContext)
        Used as the TypeMap.setPostConverter(Converter) for JpaOrder in toMe().

        For each of the parent-order back-references in managed collections like getOrderItems(), explicitly sets their value to the order instance being mapped.

        As documented in TypeMap.include(Class, Class), extensions will not automatically inherit this converter, and must manually set it on the extended type map.

        Parameters:
        mappingContext - the model mapper mapping context
        Returns:
        the persisted-domain order after setting each of its managed collection items' parent references to itself
      • getBusinessDomainType

        public Class<?> getBusinessDomainType()
        Specified by:
        getBusinessDomainType in interface com.broadleafcommerce.data.tracking.core.mapping.BusinessTypeAware
      • setTotalTax

        public void setTotalTax​(javax.money.MonetaryAmount totalTax)
      • getTotalTax

        public javax.money.MonetaryAmount getTotalTax()
      • setFulfillmentTotal

        public void setFulfillmentTotal​(javax.money.MonetaryAmount fulfillmentTotal)
      • getFulfillmentTotal

        public javax.money.MonetaryAmount getFulfillmentTotal()
      • setSubtotal

        public void setSubtotal​(javax.money.MonetaryAmount subtotal)
      • getSubtotal

        public javax.money.MonetaryAmount getSubtotal()
      • setAdjustmentsTotal

        public void setAdjustmentsTotal​(javax.money.MonetaryAmount adjustmentsTotal)
      • getAdjustmentsTotal

        public javax.money.MonetaryAmount getAdjustmentsTotal()
      • setFeesTotal

        public void setFeesTotal​(javax.money.MonetaryAmount feesTotal)
      • getFeesTotal

        public javax.money.MonetaryAmount getFeesTotal()
      • setTotal

        public void setTotal​(javax.money.MonetaryAmount total)
      • getTotal

        public javax.money.MonetaryAmount getTotal()
      • setAccountHierarchyAsString

        public void setAccountHierarchyAsString​(String accountHierarchy)
      • getAccountHierarchyAsString

        public String getAccountHierarchyAsString()
      • setAccountHierarchy

        public void setAccountHierarchy​(List<String> accountHierarchy)
      • getAccountHierarchy

        public List<String> getAccountHierarchy()
      • getContextId

        public String getContextId()
        The jpa primary key.
        Specified by:
        getContextId in interface com.broadleafcommerce.data.tracking.core.Trackable
        Returns:
        The jpa primary key
      • getCartId

        public String getCartId()
      • getName

        public String getName()
      • getCartType

        public String getCartType()
      • getStatus

        public String getStatus()
      • getApproverEmail

        public String getApproverEmail()
      • getCustomerId

        public String getCustomerId()
      • getCustomerName

        public String getCustomerName()
      • getEmailAddress

        public String getEmailAddress()
      • getAccountId

        public String getAccountId()
      • getRootAccountId

        public String getRootAccountId()
      • getOrderNumber

        public String getOrderNumber()
      • getCartCreateDate

        public Instant getCartCreateDate()
      • getCheckoutRequestId

        public String getCheckoutRequestId()
      • getSubmitDate

        public Instant getSubmitDate()
      • getLocale

        public Locale getLocale()
      • getCurrency

        public javax.money.CurrencyUnit getCurrency()
        Specified by:
        getCurrency in interface javax.money.CurrencySupplier
      • getPaymentDistributionDetails

        public List<com.broadleafcommerce.order.client.domain.payment.PaymentDistributionDetail> getPaymentDistributionDetails()
      • getOrderItems

        public List<JpaOrderItem> getOrderItems()
        The use of FetchMode.SELECT with BatchSize is necessary, since there are multiple OneToMany "bag" collections being loaded and the default FetchMode.JOIN cannot be used due to the potential of duplicates.
      • getAdjustments

        public List<com.broadleafcommerce.order.common.domain.Adjustment> getAdjustments()
      • getOfferCodes

        public List<String> getOfferCodes()
      • getVouchers

        public List<com.broadleafcommerce.order.common.domain.Voucher> getVouchers()
      • getCampaignRefs

        public List<com.broadleafcommerce.order.common.domain.CampaignRef> getCampaignRefs()
      • getInternalAttributes

        public Map<String,​Object> getInternalAttributes()
      • getAttributeChoices

        public Map<String,​com.broadleafcommerce.order.common.domain.AttributeChoiceValue> getAttributeChoices()
      • getTracking

        public com.broadleafcommerce.data.tracking.jpa.filtering.domain.ApplicationJpaTracking getTracking()
        Specified by:
        getTracking in interface com.broadleafcommerce.data.tracking.core.Trackable
        See Also:
        ApplicationJpaTracking
      • setContextId

        public void setContextId​(String contextId)
        The jpa primary key.
        Specified by:
        setContextId in interface com.broadleafcommerce.data.tracking.core.Trackable
        Parameters:
        contextId - The jpa primary key
      • setCartId

        public void setCartId​(String cartId)
      • setName

        public void setName​(String name)
      • setCartType

        public void setCartType​(String cartType)
      • setStatus

        public void setStatus​(String status)
      • setApproverEmail

        public void setApproverEmail​(String approverEmail)
      • setCustomerId

        public void setCustomerId​(String customerId)
      • setCustomerName

        public void setCustomerName​(String customerName)
      • setEmailAddress

        public void setEmailAddress​(String emailAddress)
      • setAccountId

        public void setAccountId​(String accountId)
      • setRootAccountId

        public void setRootAccountId​(String rootAccountId)
      • setOrderNumber

        public void setOrderNumber​(String orderNumber)
      • setCartCreateDate

        public void setCartCreateDate​(Instant cartCreateDate)
      • setCheckoutRequestId

        public void setCheckoutRequestId​(String checkoutRequestId)
      • setSubmitDate

        public void setSubmitDate​(Instant submitDate)
      • setLocale

        public void setLocale​(Locale locale)
      • setCurrency

        public void setCurrency​(javax.money.CurrencyUnit currency)
        Specified by:
        setCurrency in interface com.broadleafcommerce.money.CurrencyConsumer
      • setPaymentDistributionDetails

        public void setPaymentDistributionDetails​(List<com.broadleafcommerce.order.client.domain.payment.PaymentDistributionDetail> paymentDistributionDetails)
      • setOrderItems

        public void setOrderItems​(List<JpaOrderItem> orderItems)
        The use of FetchMode.SELECT with BatchSize is necessary, since there are multiple OneToMany "bag" collections being loaded and the default FetchMode.JOIN cannot be used due to the potential of duplicates.
      • setAdjustments

        public void setAdjustments​(List<com.broadleafcommerce.order.common.domain.Adjustment> adjustments)
      • setOfferCodes

        public void setOfferCodes​(List<String> offerCodes)
      • setVouchers

        public void setVouchers​(List<com.broadleafcommerce.order.common.domain.Voucher> vouchers)
      • setCampaignRefs

        public void setCampaignRefs​(List<com.broadleafcommerce.order.common.domain.CampaignRef> campaignRefs)
      • setAttributes

        public void setAttributes​(Map<String,​Object> attributes)
      • setInternalAttributes

        public void setInternalAttributes​(Map<String,​Object> internalAttributes)
      • setAttributeChoices

        public void setAttributeChoices​(Map<String,​com.broadleafcommerce.order.common.domain.AttributeChoiceValue> attributeChoices)
      • setTracking

        public void setTracking​(com.broadleafcommerce.data.tracking.jpa.filtering.domain.ApplicationJpaTracking tracking)
        Specified by:
        setTracking in interface com.broadleafcommerce.data.tracking.core.TypedTrackable<com.broadleafcommerce.data.tracking.jpa.filtering.domain.ApplicationJpaTracking>
        See Also:
        ApplicationJpaTracking
      • canEqual

        protected boolean canEqual​(Object other)
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object