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/15 14:22:31 UTC
svn commit: r1851363 - in /ofbiz/ofbiz-framework/trunk/framework:
base/src/main/java/org/apache/ofbiz/base/util/
entityext/src/main/java/org/apache/ofbiz/entityext/eca/
service/src/main/java/org/apache/ofbiz/service/eca/
Author: jleroux
Date: Tue Jan 15 14:22:31 2019
New Revision: 1851363
URL: http://svn.apache.org/viewvc?rev=1851363&view=rev
Log:
Improved: ObjectType::doRealCompare returns null instead of a boolean in few
places
(OFBIZ-10812)
While reviewing OFBIZ-10811 I found that I could improve ObjectType class on 2
points:
doRealCompare returning null instead of a boolean
simpleTypeOrObjectConvert Javadoc (2 other instance not documented)
Modified:
ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/ObjectType.java
ofbiz/ofbiz-framework/trunk/framework/entityext/src/main/java/org/apache/ofbiz/entityext/eca/EntityEcaCondition.java
ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/eca/ServiceEcaCondition.java
Modified: ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/ObjectType.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/ObjectType.java?rev=1851363&r1=1851362&r2=1851363&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/ObjectType.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/ObjectType.java Tue Jan 15 14:22:31 2019
@@ -485,6 +485,7 @@ public class ObjectType {
return isOrSubOf(objectClass, typeClass);
}
+ /** See also {@link #simpleTypeOrObjectConvert(Object obj, String type, String format, TimeZone timeZone, Locale locale, boolean noTypeFail)}. */
public static Object simpleTypeOrObjectConvert(Object obj, String type, String format, Locale locale, boolean noTypeFail) throws GeneralException {
return simpleTypeOrObjectConvert(obj, type, format, null, locale, noTypeFail);
}
@@ -496,8 +497,11 @@ public class ObjectType {
*
* Supported types:
* - All primitives
+ *
* - Simple types: String, Boolean, Double, Float, Long, Integer, BigDecimal.
+ *
* - Other Objects: List, Map, Set, Calendar, Date (java.sql.Date), Time, Timestamp, TimeZone, Date (util.Date and sql.Date)
+ *
* - Simple types (maybe) not handled: Short, BigInteger, Byte, Character, ObjectName and Void...
*
* @param obj Object to convert
@@ -552,7 +556,6 @@ public class ObjectType {
if (converter != null) {
if (converter instanceof LocalizedConverter) {
- @SuppressWarnings("rawtypes")
LocalizedConverter<Object, Object> localizedConverter = (LocalizedConverter) converter;
if (timeZone == null) {
timeZone = TimeZone.getDefault();
@@ -588,6 +591,7 @@ public class ObjectType {
return obj;
}
+ /** See also {@link #simpleTypeOrObjectConvert(Object obj, String type, String format, TimeZone timeZone, Locale locale, boolean noTypeFail)}. */
public static Object simpleTypeOrObjectConvert(Object obj, String type, String format, Locale locale) throws GeneralException {
return simpleTypeOrObjectConvert(obj, type, format, locale, true);
}
@@ -631,7 +635,7 @@ public class ObjectType {
} catch (GeneralException e) {
Debug.logError(e, module);
messages.add("Could not convert value2 for comparison: " + e.getMessage());
- return null;
+ return Boolean.FALSE;
}
}
@@ -647,7 +651,7 @@ public class ObjectType {
} catch (GeneralException e) {
Debug.logError(e, module);
messages.add("Could not convert value1 for comparison: " + e.getMessage());
- return null;
+ return Boolean.FALSE;
}
// handle null values...
@@ -661,11 +665,11 @@ public class ObjectType {
} else {
if (convertedValue1 == null) {
messages.add("Left value is null, cannot complete compare for the operator " + operator);
- return null;
+ return Boolean.FALSE;
}
if (convertedValue2 == null) {
messages.add("Right value is null, cannot complete compare for the operator " + operator);
- return null;
+ return Boolean.FALSE;
}
}
}
@@ -678,7 +682,7 @@ public class ObjectType {
return str1.indexOf(str2) < 0 ? Boolean.FALSE : Boolean.TRUE;
}
messages.add("Error in XML file: cannot do a contains compare between a String and a non-String type");
- return null;
+ return Boolean.FALSE;
} else if ("is-empty".equals(operator)) {
if (convertedValue1 == null) {
return Boolean.TRUE;
@@ -720,7 +724,7 @@ public class ObjectType {
return str1.length() == 0 && str2.length() == 0 ? Boolean.FALSE : Boolean.TRUE;
} else {
messages.add("ERROR: Could not do a compare between strings with one empty string for the operator " + operator);
- return null;
+ return Boolean.FALSE;
}
}
result = str1.compareTo(str2);
@@ -767,7 +771,7 @@ public class ObjectType {
}
} else {
messages.add("Can only compare Booleans using the operators 'equals' or 'not-equals'");
- return null;
+ return Boolean.FALSE;
}
} else if ("java.lang.Object".equals(type)) {
if (convertedValue1.equals(convertedValue2)) {
@@ -777,7 +781,7 @@ public class ObjectType {
}
} else {
messages.add("Type \"" + type + "\" specified for compare not supported.");
- return null;
+ return Boolean.FALSE;
}
if (verboseOn) {
@@ -809,7 +813,7 @@ public class ObjectType {
}
} else {
messages.add("Specified compare operator \"" + operator + "\" not known.");
- return null;
+ return Boolean.FALSE;
}
if (verboseOn) {
Modified: ofbiz/ofbiz-framework/trunk/framework/entityext/src/main/java/org/apache/ofbiz/entityext/eca/EntityEcaCondition.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/entityext/src/main/java/org/apache/ofbiz/entityext/eca/EntityEcaCondition.java?rev=1851363&r1=1851362&r2=1851363&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/entityext/src/main/java/org/apache/ofbiz/entityext/eca/EntityEcaCondition.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/entityext/src/main/java/org/apache/ofbiz/entityext/eca/EntityEcaCondition.java Tue Jan 15 14:22:31 2019
@@ -25,15 +25,15 @@ import java.util.Map;
import org.apache.ofbiz.base.util.Debug;
import org.apache.ofbiz.base.util.ObjectType;
+import org.apache.ofbiz.base.util.UtilMisc;
import org.apache.ofbiz.base.util.UtilValidate;
import org.apache.ofbiz.entity.GenericEntity;
import org.apache.ofbiz.entity.GenericEntityException;
import org.apache.ofbiz.service.DispatchContext;
import org.apache.ofbiz.service.GenericServiceException;
-import org.w3c.dom.Element;
-import org.apache.ofbiz.base.util.UtilMisc;
import org.apache.ofbiz.service.LocalDispatcher;
import org.apache.ofbiz.service.ServiceUtil;
+import org.w3c.dom.Element;
/**
* EntityEcaCondition
@@ -118,11 +118,7 @@ public final class EntityEcaCondition im
Debug.logWarning((String) message, module);
}
}
- if (cond != null) {
- return cond;
- } else {
- return false;
- }
+ return cond;
}
public String getLValue() {
Modified: ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/eca/ServiceEcaCondition.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/eca/ServiceEcaCondition.java?rev=1851363&r1=1851362&r2=1851363&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/eca/ServiceEcaCondition.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/eca/ServiceEcaCondition.java Tue Jan 15 14:22:31 2019
@@ -184,12 +184,10 @@ public class ServiceEcaCondition impleme
Debug.logWarning(message.toString(), module);
}
}
- if (cond != null) {
- return cond;
- } else {
+ if (!cond) {
Debug.logWarning("doRealCompare returned null, returning false", module);
- return false;
}
+ return cond;
}
@Override