Author: arunpatidar
Date: Mon Jun 27 14:51:48 2016 New Revision: 1750354 URL: http://svn.apache.org/viewvc?rev=1750354&view=rev Log: Applied patch from jira issue - OFBIZ-7413 - Enforce noninstantiability to ProductPromoWorker Class. Thanks Rishi Solanki and Aman Mishra for your contribution. Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java?rev=1750354&r1=1750353&r2=1750354&view=diff ============================================================================== --- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java (original) +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java Mon Jun 27 14:51:48 2016 @@ -68,16 +68,18 @@ import com.ibm.icu.util.Calendar; /** * ProductPromoWorker - Worker class for catalog/product promotion related functionality */ -public class ProductPromoWorker { +public final class ProductPromoWorker { public static final String module = ProductPromoWorker.class.getName(); - public static final String resource = "OrderUiLabels"; - public static final String resource_error = "OrderErrorUiLabels"; + private static final String resource = "OrderUiLabels"; + private static final String resource_error = "OrderErrorUiLabels"; - public static final int decimals = UtilNumber.getBigDecimalScale("order.decimals"); - public static final int rounding = UtilNumber.getBigDecimalRoundingMode("order.rounding"); + private static final int decimals = UtilNumber.getBigDecimalScale("order.decimals"); + private static final int rounding = UtilNumber.getBigDecimalRoundingMode("order.rounding"); - public static final MathContext generalRounding = new MathContext(10); + private static final MathContext generalRounding = new MathContext(10); + + private ProductPromoWorker() {} public static List<GenericValue> getStoreProductPromos(Delegator delegator, LocalDispatcher dispatcher, ServletRequest request) { List<GenericValue> productPromos = new LinkedList<GenericValue>(); @@ -382,7 +384,7 @@ public class ProductPromoWorker { } } - protected static boolean hasOrderTotalCondition(GenericValue productPromo, Delegator delegator) throws GenericEntityException { + private static boolean hasOrderTotalCondition(GenericValue productPromo, Delegator delegator) throws GenericEntityException { boolean hasOtCond = false; List<GenericValue> productPromoConds = EntityQuery.use(delegator).from("ProductPromoCond") .where("productPromoId", productPromo.get("productPromoId")) @@ -398,7 +400,7 @@ public class ProductPromoWorker { return hasOtCond; } - protected static void runProductPromos(List<GenericValue> productPromoList, ShoppingCart cart, Delegator delegator, LocalDispatcher dispatcher, Timestamp nowTimestamp, boolean isolatedTestRun) throws GeneralException { + private static void runProductPromos(List<GenericValue> productPromoList, ShoppingCart cart, Delegator delegator, LocalDispatcher dispatcher, Timestamp nowTimestamp, boolean isolatedTestRun) throws GeneralException { String partyId = cart.getPartyId(); // this is our safety net; we should never need to loop through the rules more than a certain number of times, this is that number and may have to be changed for insanely large promo sets... @@ -784,7 +786,7 @@ public class ProductPromoWorker { return promoDescBuf.toString(); } - protected static boolean runProductPromoRules(ShoppingCart cart, Long useLimit, boolean requireCode, String productPromoCodeId, Long codeUseLimit, long maxUseLimit, + private static boolean runProductPromoRules(ShoppingCart cart, Long useLimit, boolean requireCode, String productPromoCodeId, Long codeUseLimit, long maxUseLimit, GenericValue productPromo, List<GenericValue> productPromoRules, LocalDispatcher dispatcher, Delegator delegator, Timestamp nowTimestamp) throws GenericEntityException, UseLimitException { boolean cartChanged = false; Map<ShoppingCartItem,BigDecimal> usageInfoMap = prepareProductUsageInfoMap(cart); @@ -894,7 +896,7 @@ public class ProductPromoWorker { return deltaUsageInfoMap; } - protected static boolean checkCondition(GenericValue productPromoCond, ShoppingCart cart, Delegator delegator, LocalDispatcher dispatcher, Timestamp nowTimestamp) throws GenericEntityException { + private static boolean checkCondition(GenericValue productPromoCond, ShoppingCart cart, Delegator delegator, LocalDispatcher dispatcher, Timestamp nowTimestamp) throws GenericEntityException { String condValue = productPromoCond.getString("condValue"); String otherValue = productPromoCond.getString("otherValue"); String inputParamEnumId = productPromoCond.getString("inputParamEnumId"); @@ -1351,7 +1353,7 @@ public class ProductPromoWorker { return false; } - protected static boolean checkConditionsForItem(GenericValue productPromoActionOrCond, ShoppingCart cart, ShoppingCartItem cartItem, Delegator delegator, LocalDispatcher dispatcher, Timestamp nowTimestamp) throws GenericEntityException { + private static boolean checkConditionsForItem(GenericValue productPromoActionOrCond, ShoppingCart cart, ShoppingCartItem cartItem, Delegator delegator, LocalDispatcher dispatcher, Timestamp nowTimestamp) throws GenericEntityException { GenericValue productPromoRule = productPromoActionOrCond.getRelatedOne("ProductPromoRule", true); List<GenericValue> productPromoConds = EntityQuery.use(delegator).from("ProductPromoCond").where("productPromoId", productPromoRule.get("productPromoId")).orderBy("productPromoCondSeqId").cache(true).queryList(); @@ -1363,7 +1365,7 @@ public class ProductPromoWorker { return true; } - protected static boolean checkConditionForItem(GenericValue productPromoCond, ShoppingCart cart, ShoppingCartItem cartItem, Delegator delegator, LocalDispatcher dispatcher, Timestamp nowTimestamp) throws GenericEntityException { + private static boolean checkConditionForItem(GenericValue productPromoCond, ShoppingCart cart, ShoppingCartItem cartItem, Delegator delegator, LocalDispatcher dispatcher, Timestamp nowTimestamp) throws GenericEntityException { String condValue = productPromoCond.getString("condValue"); // String otherValue = productPromoCond.getString("otherValue"); String inputParamEnumId = productPromoCond.getString("inputParamEnumId"); @@ -1451,7 +1453,7 @@ public class ProductPromoWorker { } /** returns true if the cart was changed and rules need to be re-evaluted */ - protected static ActionResultInfo performAction(GenericValue productPromoAction, ShoppingCart cart, Delegator delegator, LocalDispatcher dispatcher, Timestamp nowTimestamp) throws GenericEntityException, CartItemModifyException { + private static ActionResultInfo performAction(GenericValue productPromoAction, ShoppingCart cart, Delegator delegator, LocalDispatcher dispatcher, Timestamp nowTimestamp) throws GenericEntityException, CartItemModifyException { ActionResultInfo actionResultInfo = new ActionResultInfo(); performAction(actionResultInfo, productPromoAction, cart, delegator, dispatcher, nowTimestamp); return actionResultInfo; @@ -1883,7 +1885,7 @@ public class ProductPromoWorker { } } - protected static List<ShoppingCartItem> getCartItemsUsed(ShoppingCart cart, GenericValue productPromoAction) { + private static List<ShoppingCartItem> getCartItemsUsed(ShoppingCart cart, GenericValue productPromoAction) { List<ShoppingCartItem> cartItemsUsed = new LinkedList<ShoppingCartItem>(); for (ShoppingCartItem cartItem : cart) { BigDecimal quantityUsed = cartItem.getPromoQuantityCandidateUseActionAndAllConds(productPromoAction); @@ -1894,7 +1896,7 @@ public class ProductPromoWorker { return cartItemsUsed; } - protected static BigDecimal getCartItemsUsedTotalAmount(ShoppingCart cart, GenericValue productPromoAction) { + private static BigDecimal getCartItemsUsedTotalAmount(ShoppingCart cart, GenericValue productPromoAction) { BigDecimal totalAmount = BigDecimal.ZERO; for (ShoppingCartItem cartItem : cart) { BigDecimal quantityUsed = cartItem.getPromoQuantityCandidateUseActionAndAllConds(productPromoAction); @@ -1905,7 +1907,7 @@ public class ProductPromoWorker { return totalAmount; } - protected static void distributeDiscountAmount(BigDecimal discountAmountTotal, BigDecimal totalAmount, List<ShoppingCartItem> cartItemsUsed, GenericValue productPromoAction, Delegator delegator) { + private static void distributeDiscountAmount(BigDecimal discountAmountTotal, BigDecimal totalAmount, List<ShoppingCartItem> cartItemsUsed, GenericValue productPromoAction, Delegator delegator) { BigDecimal discountAmount = discountAmountTotal; // distribute the discount evenly weighted according to price over the order items that the individual quantities came from; avoids a number of issues with tax/shipping calc, inclusion in the sub-total for other promotions, etc Iterator<ShoppingCartItem> cartItemsUsedIter = cartItemsUsed.iterator(); @@ -1928,7 +1930,7 @@ public class ProductPromoWorker { // this is the old way that causes problems: doOrderPromoAction(productPromoAction, cart, discountAmount, "amount", delegator); } - protected static Integer findPromoItem(GenericValue productPromoAction, ShoppingCart cart) { + private static Integer findPromoItem(GenericValue productPromoAction, ShoppingCart cart) { List<ShoppingCartItem> cartItems = cart.items(); for (int i = 0; i < cartItems.size(); i++) { @@ -2004,7 +2006,7 @@ public class ProductPromoWorker { return null; } - protected static Integer findAdjustment(GenericValue productPromoAction, List<GenericValue> adjustments) { + private static Integer findAdjustment(GenericValue productPromoAction, List<GenericValue> adjustments) { for (int i = 0; i < adjustments.size(); i++) { GenericValue checkOrderAdjustment = adjustments.get(i); @@ -2117,7 +2119,7 @@ public class ProductPromoWorker { } } - protected static boolean isProductOld(String productId, Delegator delegator, Timestamp nowTimestamp) throws GenericEntityException { + private static boolean isProductOld(String productId, Delegator delegator, Timestamp nowTimestamp) throws GenericEntityException { GenericValue product = EntityQuery.use(delegator).from("Product").where("productId", productId).cache().queryOne(); if (product != null) { Timestamp salesDiscontinuationDate = product.getTimestamp("salesDiscontinuationDate"); @@ -2128,7 +2130,7 @@ public class ProductPromoWorker { return false; } - protected static void handleProductPromoCategories(Set<String> productIds, List<GenericValue> productPromoCategories, String productPromoApplEnumId, Delegator delegator, Timestamp nowTimestamp) throws GenericEntityException { + private static void handleProductPromoCategories(Set<String> productIds, List<GenericValue> productPromoCategories, String productPromoApplEnumId, Delegator delegator, Timestamp nowTimestamp) throws GenericEntityException { boolean include = !"PPPA_EXCLUDE".equals(productPromoApplEnumId); Set<String> productCategoryIds = new HashSet<String>(); Map<String, List<Set<String>>> productCategoryGroupSetListMap = new HashMap<String, List<Set<String>>>(); @@ -2231,7 +2233,7 @@ public class ProductPromoWorker { } } - protected static void getAllProductIds(Set<String> productCategoryIdSet, Set<String> productIdSet, Delegator delegator, Timestamp nowTimestamp, boolean include) throws GenericEntityException { + private static void getAllProductIds(Set<String> productCategoryIdSet, Set<String> productIdSet, Delegator delegator, Timestamp nowTimestamp, boolean include) throws GenericEntityException { for (String productCategoryId : productCategoryIdSet) { // get all product category memebers, filter by date List<GenericValue> productCategoryMembers = EntityQuery.use(delegator).from("ProductCategoryMember").where("productCategoryId", productCategoryId).cache(true).filterByDate(nowTimestamp).queryList(); @@ -2246,7 +2248,7 @@ public class ProductPromoWorker { } } - protected static void handleProductPromoProducts(Set<String> productIds, List<GenericValue> productPromoProducts, String productPromoApplEnumId) throws GenericEntityException { + private static void handleProductPromoProducts(Set<String> productIds, List<GenericValue> productPromoProducts, String productPromoApplEnumId) throws GenericEntityException { boolean include = !"PPPA_EXCLUDE".equals(productPromoApplEnumId); for (GenericValue productPromoProduct : productPromoProducts) { if (productPromoApplEnumId.equals(productPromoProduct.getString("productPromoApplEnumId"))) { @@ -2261,7 +2263,7 @@ public class ProductPromoWorker { } @SuppressWarnings("serial") - protected static class UseLimitException extends Exception { + private static class UseLimitException extends Exception { public UseLimitException(String str) { super(str); } |
Free forum by Nabble | Edit this page |