public class DefaultEntryMergeStrategy extends java.lang.Object implements EntryMergeStrategy
EntryMergeStrategy.
Any module can register a filter of type EntryMergeFilter. The filter can return FALSE
to deny merging particular entry with given CommerceCartParameter.
Also it is possible to change order of preference for input entries.
DefaultCommerceAddToCartStrategy| Constructor and Description |
|---|
DefaultEntryMergeStrategy() |
| Modifier and Type | Method and Description |
|---|---|
protected java.lang.Boolean |
canMerge(AbstractOrderEntryModel mergeCandidate,
AbstractOrderEntryModel newEntry)
This method determines whether given entry can be merged with the given entry creation candidate.
|
protected java.util.List<EntryMergeFilter> |
getEntryMergeFilters() |
protected java.util.Comparator<AbstractOrderEntryModel> |
getEntryModelComparator() |
AbstractOrderEntryModel |
getEntryToMerge(java.util.List<AbstractOrderEntryModel> entries,
AbstractOrderEntryModel newEntry)
Returns cart entry can be updated instead of creation of separate
newEntry. |
void |
setEntryMergeFilters(java.util.List<EntryMergeFilter> items)
Filters to reject entities that can not be merged.
|
void |
setEntryModelComparator(java.util.Comparator<AbstractOrderEntryModel> entryModelComparator)
The comparator can be overridden to change order of preference for entries.
|
public AbstractOrderEntryModel getEntryToMerge(java.util.List<AbstractOrderEntryModel> entries, AbstractOrderEntryModel newEntry)
EntryMergeStrategynewEntry.getEntryToMerge in interface EntryMergeStrategyentries - list of existing entriesnewEntry - the merge candidate (can be an item of entriesnull if no applicable entries found)protected java.lang.Boolean canMerge(AbstractOrderEntryModel mergeCandidate, AbstractOrderEntryModel newEntry)
mergeCandidate - entry that is supposed to be merge acceptornewEntry - entry to find merge target forBoolean.FALSE to disable merge of newEntry to mergeCandidateprotected java.util.List<EntryMergeFilter> getEntryMergeFilters()
public void setEntryMergeFilters(java.util.List<EntryMergeFilter> items)
The filters are applied in their natural order,
so it worth to put the filters that are fast and likely return Boolean.FALSE
on top of the list.
It will speed up the filtration.
items - new list of filtersListMergeDirectiveprotected java.util.Comparator<AbstractOrderEntryModel> getEntryModelComparator()
public void setEntryModelComparator(java.util.Comparator<AbstractOrderEntryModel> entryModelComparator)
this#getEntryToMerge(List, CommerceCartParameter) returns first suitable entry of the resulting list.
The default implementation does not change order of entries.
entryModelComparator - new AbstractOrderEntryModel comparatorCopyright © 2018 SAP SE. All Rights Reserved.