java.lang.Object
com.broadleafcommerce.order.provider.jpa.domain.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:
  • Constructor Details

    • JpaOrder

      public JpaOrder()
  • Method Details

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

      public javax.money.MonetaryAmount getIncludedTaxAmount()
    • setIncludedTaxAmount

      public void setIncludedTaxAmount(javax.money.MonetaryAmount includedTaxAmount)
    • 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
    • getTaxIncludedType

      public String getTaxIncludedType()
    • 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()
    • getAttributes

      public Map<String,Object> getAttributes()
    • 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
    • setTaxIncludedType

      public void setTaxIncludedType(String taxIncludedType)
    • 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
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • canEqual

      protected boolean canEqual(Object other)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object