You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2019/01/01 18:50:47 UTC
svn commit: r1850113 -
/ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/product/product/ProductEvents.java
Author: jleroux
Date: Tue Jan 1 18:50:47 2019
New Revision: 1850113
URL: http://svn.apache.org/viewvc?rev=1850113&view=rev
Log:
Improved: function parseBigDecimalForEntity is in wrong location
(OFBIZ-10689)
Renames parseBigDecimalForEntity method to parseBigDecimalFromParameter
parseBigDecimalFromParameter now uses ObjectType::simpleTypeOrObjectConvert
underneath
Removes deprecated and unused parseDoubleForEntity method
Modified:
ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/product/product/ProductEvents.java
Modified: ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/product/product/ProductEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/product/product/ProductEvents.java?rev=1850113&r1=1850112&r2=1850113&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/product/product/ProductEvents.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/product/product/ProductEvents.java Tue Jan 1 18:50:47 2019
@@ -25,6 +25,7 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
@@ -35,6 +36,7 @@ import javax.servlet.http.HttpServletRes
import javax.servlet.http.HttpSession;
import org.apache.ofbiz.base.util.Debug;
+import org.apache.ofbiz.base.util.GeneralException;
import org.apache.ofbiz.base.util.ObjectType;
import org.apache.ofbiz.base.util.UtilDateTime;
import org.apache.ofbiz.base.util.UtilGenerics;
@@ -60,6 +62,7 @@ import org.apache.ofbiz.service.GenericS
import org.apache.ofbiz.service.LocalDispatcher;
import org.apache.ofbiz.webapp.website.WebSiteWorker;
+
/**
* Product Information Related Events
*/
@@ -432,10 +435,10 @@ public class ProductEvents {
product.set("lastModifiedDate", nowTimestamp);
product.setString("lastModifiedByUserLogin", userLogin.getString("userLoginId"));
try {
- product.set("productHeight", parseBigDecimalForEntity(request.getParameter("productHeight")));
- product.set("productWidth", parseBigDecimalForEntity(request.getParameter("productWidth")));
- product.set("productDepth", parseBigDecimalForEntity(request.getParameter("productDepth")));
- product.set("productWeight", parseBigDecimalForEntity(request.getParameter("weight")));
+ product.set("productHeight", parseBigDecimalFromParameter("productHeight", request));
+ product.set("productWidth", parseBigDecimalFromParameter("productWidth", request));
+ product.set("productDepth", parseBigDecimalFromParameter("productDepth", request));
+ product.set("productWeight", parseBigDecimalFromParameter("weight", request));
// default unit settings for shipping parameters
product.set("heightUomId", "LEN_in");
@@ -443,10 +446,10 @@ public class ProductEvents {
product.set("depthUomId", "LEN_in");
product.set("weightUomId", "WT_oz");
- BigDecimal floz = parseBigDecimalForEntity(request.getParameter("~floz"));
- BigDecimal ml = parseBigDecimalForEntity(request.getParameter("~ml"));
- BigDecimal ntwt = parseBigDecimalForEntity(request.getParameter("~ntwt"));
- BigDecimal grams = parseBigDecimalForEntity(request.getParameter("~grams"));
+ BigDecimal floz = parseBigDecimalFromParameter("~floz", request);
+ BigDecimal ml = parseBigDecimalFromParameter("~ml", request);
+ BigDecimal ntwt = parseBigDecimalFromParameter("~ntwt", request);
+ BigDecimal grams = parseBigDecimalFromParameter("~grams", request);
List<GenericValue> currentProductFeatureAndAppls = EntityQuery.use(delegator).from("ProductFeatureAndAppl").where("productId", productId, "productFeatureApplTypeId", "STANDARD_FEATURE").filterByDate().queryList();
setOrCreateProdFeature(delegator, productId, currentProductFeatureAndAppls, "VLIQ_ozUS", "AMOUNT", floz);
@@ -455,7 +458,7 @@ public class ProductEvents {
setOrCreateProdFeature(delegator, productId, currentProductFeatureAndAppls, "WT_oz", "AMOUNT", ntwt);
product.store();
- } catch (NumberFormatException nfe) {
+ } catch (NumberFormatException | GeneralException nfe) {
String errMsg = "Shipping Dimensions and Weights must be numbers.";
request.setAttribute("_ERROR_MESSAGE_", errMsg);
Debug.logError(nfe, errMsg, module);
@@ -469,14 +472,14 @@ public class ProductEvents {
do {
GenericValue product = EntityQuery.use(delegator).from("Product").where("productId", productId).queryOne();
try {
- product.set("productHeight", parseBigDecimalForEntity(request.getParameter("productHeight" + attribIdx)));
- product.set("productWidth", parseBigDecimalForEntity(request.getParameter("productWidth" + attribIdx)));
- product.set("productDepth", parseBigDecimalForEntity(request.getParameter("productDepth" + attribIdx)));
- product.set("productWeight", parseBigDecimalForEntity(request.getParameter("weight" + attribIdx)));
- BigDecimal floz = parseBigDecimalForEntity(request.getParameter("~floz" + attribIdx));
- BigDecimal ml = parseBigDecimalForEntity(request.getParameter("~ml" + attribIdx));
- BigDecimal ntwt = parseBigDecimalForEntity(request.getParameter("~ntwt" + attribIdx));
- BigDecimal grams = parseBigDecimalForEntity(request.getParameter("~grams" + attribIdx));
+ product.set("productHeight", parseBigDecimalFromParameter("productHeight" + attribIdx, request));
+ product.set("productWidth", parseBigDecimalFromParameter("productWidth" + attribIdx, request));
+ product.set("productDepth", parseBigDecimalFromParameter("productDepth" + attribIdx, request));
+ product.set("productWeight", parseBigDecimalFromParameter("weight" + attribIdx, request));
+ BigDecimal floz = parseBigDecimalFromParameter("~floz" + attribIdx, request);
+ BigDecimal ml = parseBigDecimalFromParameter("~ml" + attribIdx, request);
+ BigDecimal ntwt = parseBigDecimalFromParameter("~ntwt" + attribIdx, request);
+ BigDecimal grams = parseBigDecimalFromParameter("~grams" + attribIdx, request);
List<GenericValue> currentProductFeatureAndAppls = EntityQuery.use(delegator).from("ProductFeatureAndAppl").where("productId", productId, "productFeatureApplTypeId", "STANDARD_FEATURE").filterByDate().queryList();
setOrCreateProdFeature(delegator, productId, currentProductFeatureAndAppls, "VLIQ_ozUS", "AMOUNT", floz);
@@ -484,7 +487,7 @@ public class ProductEvents {
setOrCreateProdFeature(delegator, productId, currentProductFeatureAndAppls, "WT_g", "AMOUNT", grams);
setOrCreateProdFeature(delegator, productId, currentProductFeatureAndAppls, "WT_oz", "AMOUNT", ntwt);
product.store();
- } catch (NumberFormatException nfe) {
+ } catch (NumberFormatException | GeneralException nfe) {
String errMsg = "Shipping Dimensions and Weights must be numbers.";
request.setAttribute("_ERROR_MESSAGE_", errMsg);
Debug.logError(nfe, errMsg, module);
@@ -522,7 +525,6 @@ public class ProductEvents {
* @param uomId
* @param productFeatureTypeId
* @param numberSpecified
- * @return
* @throws GenericEntityException
*/
private static void setOrCreateProdFeature(Delegator delegator, String productId, List<GenericValue> currentProductFeatureAndAppls,
@@ -1035,19 +1037,6 @@ public class ProductEvents {
return "success";
}
- @Deprecated
- public static Double parseDoubleForEntity(String doubleString) throws NumberFormatException {
- if (doubleString == null) {
- return null;
- }
- doubleString = doubleString.trim();
- doubleString = doubleString.replaceAll(",", "");
- if (doubleString.length() < 1) {
- return null;
- }
- return Double.valueOf(doubleString);
- }
-
public static List<GenericValue> getProductCompareList(HttpServletRequest request) {
HttpSession session = request.getSession();
Object compareListObj = session.getAttribute("productCompareList");
@@ -1152,17 +1141,11 @@ public class ProductEvents {
* in fields where BigDecimal display. Blank meaning null, vs. 0 which means 0
* @param bigDecimalString
* @return a BigDecimal for the parsed value
+ * @throws GeneralException
*/
- public static BigDecimal parseBigDecimalForEntity(String bigDecimalString) throws NumberFormatException {
- if (bigDecimalString == null) {
- return null;
- }
- bigDecimalString = bigDecimalString.trim();
- bigDecimalString = bigDecimalString.replaceAll(",", "");
- if (bigDecimalString.length() < 1) {
- return null;
- }
- return new BigDecimal(bigDecimalString);
+ public static BigDecimal parseBigDecimalFromParameter(String bigDecimalString, HttpServletRequest request) throws GeneralException {
+ Locale locale = UtilHttp.getLocale(request);
+ return (BigDecimal) ObjectType.simpleTypeOrObjectConvert(request.getParameter(bigDecimalString), "BigDecimal", null, locale);
}
/** Event add product tags */