Class JpaTenantCatalog

java.lang.Object
com.broadleafcommerce.tenant.provider.jpa.domain.JpaTenantCatalog
All Implemented Interfaces:
com.broadleafcommerce.common.messaging.notification.domain.NotificationStateAware, com.broadleafcommerce.data.tracking.core.filtering.domain.CatalogBasicInfo, com.broadleafcommerce.data.tracking.core.mapping.BusinessTypeAware, com.broadleafcommerce.data.tracking.core.mapping.ModelMapperMappable, com.broadleafcommerce.data.tracking.core.Temporal, com.broadleafcommerce.data.tracking.core.TenantTrackable<com.broadleafcommerce.data.tracking.jpa.filtering.domain.TenantJpaTracking>, com.broadleafcommerce.data.tracking.core.Trackable, com.broadleafcommerce.data.tracking.core.TypedTrackable<com.broadleafcommerce.data.tracking.jpa.filtering.domain.TenantJpaTracking>, com.broadleafcommerce.translation.domain.Translatable, Serializable

@Entity @PolicyVariance(TENANT_TRACKABLE_APP_CONTEXT) public class JpaTenantCatalog extends Object implements com.broadleafcommerce.data.tracking.core.TenantTrackable<com.broadleafcommerce.data.tracking.jpa.filtering.domain.TenantJpaTracking>, com.broadleafcommerce.data.tracking.core.mapping.ModelMapperMappable, com.broadleafcommerce.data.tracking.core.filtering.domain.CatalogBasicInfo, com.broadleafcommerce.data.tracking.core.mapping.BusinessTypeAware, com.broadleafcommerce.data.tracking.core.Temporal, com.broadleafcommerce.translation.domain.Translatable
Represents a catalog node in an overall catalog tree.

This repository domain type specifically maps to the JPA repository domain.

As a Trackable, this entity is also aware of archival state. If archived (Tracking.getArchived()), a Sandbox entity will not be returned by fetch queries.

As a Trackable, this entity is aware of change audit information and will keep track of changes made during creation or updates in the Tracking.getChangeDetails() field. ChangeDetails are not permanent on this entity and will be moved to a permanent audit store on an async interval.

Author:
Jeff Fischer
See Also:
  • Field Details

  • Constructor Details

    • JpaTenantCatalog

      public JpaTenantCatalog()
  • Method Details

    • setParents

      public void setParents(List<JpaTenantCatalogRef> parents)
    • fromMe

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

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

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

      public Optional<String> getDisplay()
      Specified by:
      getDisplay in interface com.broadleafcommerce.data.tracking.core.Trackable
    • getContextId

      public String getContextId()
      Specified by:
      getContextId in interface com.broadleafcommerce.data.tracking.core.filtering.domain.CatalogBasicInfo
      Specified by:
      getContextId in interface com.broadleafcommerce.data.tracking.core.Trackable
      Specified by:
      getContextId in interface com.broadleafcommerce.translation.domain.Translatable
    • getOwningApplication

      public String getOwningApplication()
      Soft reference to the application contextId that owns this catalog. This value can be null, in which case, this is a global catalog.
      Returns:
      Soft reference to the application contextId that owns this catalog
    • getName

      public String getName()
      The name for the catalog
      Specified by:
      getName in interface com.broadleafcommerce.data.tracking.core.filtering.domain.CatalogBasicInfo
      Returns:
      The name for the catalog
    • isHidden

      public boolean isHidden()
      Whether or not this catalog is hidden from selection in the admin.
      Returns:
      Whether or not this catalog is hidden from selection in the admin
    • getLevel

      public Long getLevel()
      The level for a catalog in the tree going from least (root nodes) to highest (leaf nodes). This is primarily used for sorting in a given inheritance line. This is a calculated field.
      Specified by:
      getLevel in interface com.broadleafcommerce.data.tracking.core.filtering.domain.CatalogBasicInfo
      Returns:
      The level for a catalog in the tree
    • getParents

      public List<JpaTenantCatalogRef> getParents()
      The parent nodes for this catalog, including additional mutability information.
      Returns:
      The parent nodes for this catalog
    • getTimestamp

      public Instant getTimestamp()
      Temporal state describing the time at which this item was last updated. Relates to the Temporal interface and is primarily used during consumption of messages regarding changes in state to this domain. For example, a service consuming a change notification for this domain can compare the current persisted timestamp to this timestamp to determine if it already has a newer version, in which case, it can ignore. This is primarily a measure to ensure that ordering is not required for messages related to state change.
      Specified by:
      getTimestamp in interface com.broadleafcommerce.data.tracking.core.Temporal
      Returns:
      Temporal state describing the time at which this item was last updated
    • getLocale

      public Locale getLocale()
      Specified by:
      getLocale in interface com.broadleafcommerce.data.tracking.core.filtering.domain.CatalogBasicInfo
      See Also:
    • getDefaultCurrency

      public Currency getDefaultCurrency()
      See Also:
    • getVendorRef

      public String getVendorRef()
      See Also:
    • getType

      public String getType()
      See Also:
    • getTracking

      public com.broadleafcommerce.data.tracking.jpa.filtering.domain.TenantJpaTracking getTracking()
      Retrieve the tracking information from the entity
      Specified by:
      getTracking in interface com.broadleafcommerce.data.tracking.core.Trackable
      Returns:
      Tracking information
    • setContextId

      public void setContextId(String contextId)
      Specified by:
      setContextId in interface com.broadleafcommerce.data.tracking.core.filtering.domain.CatalogBasicInfo
      Specified by:
      setContextId in interface com.broadleafcommerce.data.tracking.core.Trackable
    • setOwningApplication

      public void setOwningApplication(String owningApplication)
      Soft reference to the application contextId that owns this catalog. This value can be null, in which case, this is a global catalog.
      Parameters:
      owningApplication - Soft reference to the application contextId that owns this catalog
    • setName

      public void setName(String name)
      The name for the catalog
      Specified by:
      setName in interface com.broadleafcommerce.data.tracking.core.filtering.domain.CatalogBasicInfo
      Parameters:
      name - The name for the catalog
    • setHidden

      public void setHidden(boolean hidden)
      Whether or not this catalog is hidden from selection in the admin.
      Parameters:
      hidden - Whether or not this catalog is hidden from selection in the admin
    • setLevel

      public void setLevel(Long level)
      The level for a catalog in the tree going from least (root nodes) to highest (leaf nodes). This is primarily used for sorting in a given inheritance line. This is a calculated field.
      Specified by:
      setLevel in interface com.broadleafcommerce.data.tracking.core.filtering.domain.CatalogBasicInfo
      Parameters:
      level - The level for a catalog in the tree
    • setTimestamp

      public void setTimestamp(Instant timestamp)
      Temporal state describing the time at which this item was last updated. Relates to the Temporal interface and is primarily used during consumption of messages regarding changes in state to this domain. For example, a service consuming a change notification for this domain can compare the current persisted timestamp to this timestamp to determine if it already has a newer version, in which case, it can ignore. This is primarily a measure to ensure that ordering is not required for messages related to state change.
      Specified by:
      setTimestamp in interface com.broadleafcommerce.data.tracking.core.Temporal
      Parameters:
      timestamp - Temporal state describing the time at which this item was last updated
    • setLocale

      public void setLocale(Locale locale)
      Specified by:
      setLocale in interface com.broadleafcommerce.data.tracking.core.filtering.domain.CatalogBasicInfo
      See Also:
    • setDefaultCurrency

      public void setDefaultCurrency(Currency defaultCurrency)
      See Also:
    • setVendorRef

      public void setVendorRef(String vendorRef)
      See Also:
    • setType

      public void setType(String type)
      See Also:
    • setTracking

      public void setTracking(com.broadleafcommerce.data.tracking.jpa.filtering.domain.TenantJpaTracking tracking)
      Retrieve the tracking information from the entity
      Specified by:
      setTracking in interface com.broadleafcommerce.data.tracking.core.TypedTrackable<com.broadleafcommerce.data.tracking.jpa.filtering.domain.TenantJpaTracking>
      Parameters:
      tracking - Tracking information
    • 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