Class PropagationManagerProperties
DefaultPropagationManager.- Since:
- Data Tracking 2.0.5
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanbooleanintWhen using the standard recursive propagation flow inDefaultPropagationManager, there may be a huge number of direct child catalogs found for any given catalog.inthashCode()booleanWhether a notification for a catalog entity creation is allowed.booleanWhether a notification for a catalog entity deletion is allowed.booleanWhether a notification for a catalog entity update is allowed.booleanIf enabled,DefaultPropagationManagerwill allow the use ofHierarchyPropagationHandlercomponents.voidsetAllowCatalogEntityCreationNotification(boolean allowCatalogEntityCreationNotification) Whether a notification for a catalog entity creation is allowed.voidsetAllowCatalogEntityDeletionNotification(boolean allowCatalogEntityDeletionNotification) Whether a notification for a catalog entity deletion is allowed.voidsetAllowCatalogEntityUpdateNotification(boolean allowCatalogEntityUpdateNotification) Whether a notification for a catalog entity update is allowed.voidsetAllowHierarchyPropagationHandlers(boolean allowHierarchyPropagationHandlers) If enabled,DefaultPropagationManagerwill allow the use ofHierarchyPropagationHandlercomponents.voidsetRecursivePropagationCatalogIdsProcessingBatchSize(int recursivePropagationCatalogIdsProcessingBatchSize) When using the standard recursive propagation flow inDefaultPropagationManager, there may be a huge number of direct child catalogs found for any given catalog.toString()
-
Constructor Details
-
PropagationManagerProperties
public PropagationManagerProperties()
-
-
Method Details
-
isAllowHierarchyPropagationHandlers
public boolean isAllowHierarchyPropagationHandlers()If enabled,
DefaultPropagationManagerwill allow the use ofHierarchyPropagationHandlercomponents. Whether any of theHierarchyPropagationHandlercomponents are actually used in a particular request depends on whether any of them can handle it, but this toggle represents a top-level opt-in/opt-out flag to gate whether the hierarchical handlers are even an available option for propagation. By default, this is set to false for backward compatibility.- Since:
- DataTracking 2.0.7
-
isAllowCatalogEntityDeletionNotification
public boolean isAllowCatalogEntityDeletionNotification()Whether a notification for a catalog entity deletion is allowed. Default is true. NOTE: Prior to 2.0.5, all catalog entity deletion notifications were always enabled and why the default is set to true. -
isAllowCatalogEntityCreationNotification
public boolean isAllowCatalogEntityCreationNotification()Whether a notification for a catalog entity creation is allowed. Default is false. -
isAllowCatalogEntityUpdateNotification
public boolean isAllowCatalogEntityUpdateNotification()Whether a notification for a catalog entity update is allowed. Default is false. -
getRecursivePropagationCatalogIdsProcessingBatchSize
public int getRecursivePropagationCatalogIdsProcessingBatchSize()When using the standard recursive propagation flow in
DefaultPropagationManager, there may be a huge number of direct child catalogs found for any given catalog. Each of those may contain an override record that should be the target of propagation. We don't want to load too many things in memory, or exceed query size limits with large 'IN' clauses.Batching becomes especially important due to the recursive nature of the propagation. For example, without any limits, if you have 10000 child catalogs, each with their own product override, you'll have loaded 10000 child catalogs IDs as well as 10000 products at the first layer of recursion. Then, as you process each product, each one will enter this flow at the next level of recursion - it will load the next layer of catalog IDs and override entities, stacking on top of what we already have at the first layer. By setting a reasonable limit on how many entities are loaded at a time at each layer, we can place an upper bound on memory usage. Generally speaking, the default should suffice for most use cases.
- Since:
- DataTracking 2.0.7
-
setAllowHierarchyPropagationHandlers
public void setAllowHierarchyPropagationHandlers(boolean allowHierarchyPropagationHandlers) If enabled,
DefaultPropagationManagerwill allow the use ofHierarchyPropagationHandlercomponents. Whether any of theHierarchyPropagationHandlercomponents are actually used in a particular request depends on whether any of them can handle it, but this toggle represents a top-level opt-in/opt-out flag to gate whether the hierarchical handlers are even an available option for propagation. By default, this is set to false for backward compatibility.- Since:
- DataTracking 2.0.7
-
setAllowCatalogEntityDeletionNotification
public void setAllowCatalogEntityDeletionNotification(boolean allowCatalogEntityDeletionNotification) Whether a notification for a catalog entity deletion is allowed. Default is true. NOTE: Prior to 2.0.5, all catalog entity deletion notifications were always enabled and why the default is set to true. -
setAllowCatalogEntityCreationNotification
public void setAllowCatalogEntityCreationNotification(boolean allowCatalogEntityCreationNotification) Whether a notification for a catalog entity creation is allowed. Default is false. -
setAllowCatalogEntityUpdateNotification
public void setAllowCatalogEntityUpdateNotification(boolean allowCatalogEntityUpdateNotification) Whether a notification for a catalog entity update is allowed. Default is false. -
setRecursivePropagationCatalogIdsProcessingBatchSize
public void setRecursivePropagationCatalogIdsProcessingBatchSize(int recursivePropagationCatalogIdsProcessingBatchSize) When using the standard recursive propagation flow in
DefaultPropagationManager, there may be a huge number of direct child catalogs found for any given catalog. Each of those may contain an override record that should be the target of propagation. We don't want to load too many things in memory, or exceed query size limits with large 'IN' clauses.Batching becomes especially important due to the recursive nature of the propagation. For example, without any limits, if you have 10000 child catalogs, each with their own product override, you'll have loaded 10000 child catalogs IDs as well as 10000 products at the first layer of recursion. Then, as you process each product, each one will enter this flow at the next level of recursion - it will load the next layer of catalog IDs and override entities, stacking on top of what we already have at the first layer. By setting a reasonable limit on how many entities are loaded at a time at each layer, we can place an upper bound on memory usage. Generally speaking, the default should suffice for most use cases.
- Since:
- DataTracking 2.0.7
-
equals
-
canEqual
-
hashCode
public int hashCode() -
toString
-