Class PriceDetailComparator
java.lang.Object
com.broadleafcommerce.pricing.service.PriceDetailComparator
- All Implemented Interfaces:
Serializable,Comparator<com.broadleafcommerce.pricing.client.domain.PriceDetailComparable>
public class PriceDetailComparator
extends Object
implements Comparator<com.broadleafcommerce.pricing.client.domain.PriceDetailComparable>, Serializable
Comparator for PriceListPriceDetail used to determine the best price for a
PriceableTarget. The default puts nulls last except for prices where null is equal to
zero. This comparator compares in order:
- Whether the two details are null, nulls last
- The
PriceListPriceDetail.getPriceListPriority(), nulls last - The
PriceListPriceDetail.getPriority(), nulls last - The
PriceListPriceDetail.getPrice(), null equals 0 - The
PriceListPriceDetail.getRecurringPriceDetail(), nulls first. If neither are null, comparesRecurringPriceDetail.getPrice(), null equals 0. - The
PriceListPriceDetail.getUsagePriceDetail(), nulls first. If neither are null, comparesRecurringPriceDetail.getPrice(), null equals 0.
- Author:
- Nathan Moore (nathandmoore)
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionPriceDetailComparator(javax.money.CurrencyUnit requestedCurrency, boolean includeListPriority, boolean includeDetailPriority) PriceDetailComparator(javax.money.CurrencyUnit requestedCurrency, boolean includeListPriority, boolean includeDetailPriority, boolean preferContractPriceLists) -
Method Summary
Modifier and TypeMethodDescriptionprotected Comparator<com.broadleafcommerce.pricing.client.domain.PriceDetailComparable>buildPriceComparator(Comparator<com.broadleafcommerce.pricing.client.domain.PriceDetailComparable> comparator, com.broadleafcommerce.pricing.client.domain.PriceDetailComparable a, com.broadleafcommerce.pricing.client.domain.PriceDetailComparable b) intcompare(com.broadleafcommerce.pricing.client.domain.PriceDetailComparable a, com.broadleafcommerce.pricing.client.domain.PriceDetailComparable b) protected intcompareCurrency(com.broadleafcommerce.pricing.client.domain.PriceDetailComparable val1, com.broadleafcommerce.pricing.client.domain.PriceDetailComparable val2) protected intcomparePrice(javax.money.MonetaryAmount val1, javax.money.MonetaryAmount val2) protected intcompareRecurringPriceDetail(com.broadleafcommerce.pricing.client.domain.PriceDetailComparable a, com.broadleafcommerce.pricing.client.domain.PriceDetailComparable b) protected intcompareUsagePriceDetails(com.broadleafcommerce.pricing.client.domain.PriceDetailComparable a, com.broadleafcommerce.pricing.client.domain.PriceDetailComparable b) javax.money.CurrencyUnitbooleanbooleanbooleanprotected intprotected intpreferContractPriceLists(com.broadleafcommerce.pricing.client.domain.PriceDetailComparable a, com.broadleafcommerce.pricing.client.domain.PriceDetailComparable b) voidsetIncludeDetailPriority(boolean includeDetailPriority) voidsetIncludeListPriority(boolean includeListPriority) voidsetPcUtility(PriceComparisonUtility pcUtility) voidsetPreferContractPriceLists(boolean preferContractPriceLists) voidsetRequestedCurrency(javax.money.CurrencyUnit requestedCurrency) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.util.Comparator
equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
Constructor Details
-
PriceDetailComparator
public PriceDetailComparator(javax.money.CurrencyUnit requestedCurrency, boolean includeListPriority, boolean includeDetailPriority) -
PriceDetailComparator
public PriceDetailComparator(javax.money.CurrencyUnit requestedCurrency, boolean includeListPriority, boolean includeDetailPriority, boolean preferContractPriceLists)
-
-
Method Details
-
compare
public int compare(com.broadleafcommerce.pricing.client.domain.PriceDetailComparable a, com.broadleafcommerce.pricing.client.domain.PriceDetailComparable b) - Specified by:
comparein interfaceComparator<com.broadleafcommerce.pricing.client.domain.PriceDetailComparable>
-
buildPriceComparator
protected Comparator<com.broadleafcommerce.pricing.client.domain.PriceDetailComparable> buildPriceComparator(Comparator<com.broadleafcommerce.pricing.client.domain.PriceDetailComparable> comparator, com.broadleafcommerce.pricing.client.domain.PriceDetailComparable a, com.broadleafcommerce.pricing.client.domain.PriceDetailComparable b) -
nullsLast
-
compareCurrency
protected int compareCurrency(com.broadleafcommerce.pricing.client.domain.PriceDetailComparable val1, com.broadleafcommerce.pricing.client.domain.PriceDetailComparable val2) -
comparePrice
protected int comparePrice(javax.money.MonetaryAmount val1, javax.money.MonetaryAmount val2) -
preferContractPriceLists
protected int preferContractPriceLists(com.broadleafcommerce.pricing.client.domain.PriceDetailComparable a, com.broadleafcommerce.pricing.client.domain.PriceDetailComparable b) -
compareRecurringPriceDetail
protected int compareRecurringPriceDetail(com.broadleafcommerce.pricing.client.domain.PriceDetailComparable a, com.broadleafcommerce.pricing.client.domain.PriceDetailComparable b) -
compareUsagePriceDetails
protected int compareUsagePriceDetails(com.broadleafcommerce.pricing.client.domain.PriceDetailComparable a, com.broadleafcommerce.pricing.client.domain.PriceDetailComparable b) -
getRequestedCurrency
public javax.money.CurrencyUnit getRequestedCurrency() -
isIncludeListPriority
public boolean isIncludeListPriority() -
isIncludeDetailPriority
public boolean isIncludeDetailPriority() -
isPreferContractPriceLists
public boolean isPreferContractPriceLists() -
getPcUtility
-
setRequestedCurrency
public void setRequestedCurrency(javax.money.CurrencyUnit requestedCurrency) -
setIncludeListPriority
public void setIncludeListPriority(boolean includeListPriority) -
setIncludeDetailPriority
public void setIncludeDetailPriority(boolean includeDetailPriority) -
setPreferContractPriceLists
public void setPreferContractPriceLists(boolean preferContractPriceLists) -
setPcUtility
-