You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by da...@apache.org on 2017/10/26 14:19:25 UTC
svn commit: r1813407 - in
/felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl:
ConverterImpl.java ConvertingImpl.java
Author: davidb
Date: Thu Oct 26 14:19:25 2017
New Revision: 1813407
URL: http://svn.apache.org/viewvc?rev=1813407&view=rev
Log:
Move some special converter cases to rules.
Modified:
felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConverterImpl.java
felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java
Modified: felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConverterImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConverterImpl.java?rev=1813407&r1=1813406&r2=1813407&view=diff
==============================================================================
--- felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConverterImpl.java (original)
+++ felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConverterImpl.java Thu Oct 26 14:19:25 2017
@@ -203,6 +203,20 @@ public class ConverterImpl implements In
}
}) {});
+ cb.rule(new Rule<Number, Boolean>(new Function<Number, Boolean>() {
+ @Override
+ public Boolean apply(Number obj) {
+ return obj.longValue() != 0;
+ }
+ }) {});
+
+ cb.rule(new Rule<Number, Character>(new Function<Number, Character>() {
+ @Override
+ public Character apply(Number obj) {
+ return Character.valueOf((char) obj.intValue());
+ }
+ }) {});
+
reflectiveAddRule(cb, "java.time.LocalDateTime", "parse");
reflectiveAddRule(cb, "java.time.LocalDate", "parse");
reflectiveAddRule(cb, "java.time.LocalTime", "parse");
Modified: felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java?rev=1813407&r1=1813406&r2=1813407&view=diff
==============================================================================
--- felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java (original)
+++ felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java Thu Oct 26 14:19:25 2017
@@ -533,19 +533,10 @@ public class ConvertingImpl extends Abst
}
private Object trySpecialCases() {
- // TODO some of these can probably be implemented as an adapter
-
if (Boolean.class.equals(targetAsClass)) {
- if (object instanceof Number) {
- return ((Number) object).longValue() != 0;
- } else if (object instanceof Collection && ((Collection<?>) object).size() == 0) {
- // TODO What about arrays?
+ if (object instanceof Collection && ((Collection<?>) object).size() == 0) {
return Boolean.FALSE;
}
- } else if (Character.class.equals(targetAsClass)) {
- if (object instanceof Number) {
- return Character.valueOf((char) ((Number) object).intValue());
- }
} else if (Number.class.isAssignableFrom(targetAsClass)) {
if (object instanceof Boolean) {
return ((Boolean) object).booleanValue() ? 1 : 0;
@@ -564,10 +555,6 @@ public class ConvertingImpl extends Abst
return ((Number) object).doubleValue();
}
}
- } else if (Class.class.equals(targetAsClass)) {
- if (object instanceof Collection && ((Collection<?>) object).size() == 0) {
- return null;
- }
} else if (Enum.class.isAssignableFrom(targetAsClass)) {
if (object instanceof Number) {
try {
@@ -841,7 +828,6 @@ public class ConvertingImpl extends Abst
return Map.class.isAssignableFrom(cls) ||
Collection.class.isAssignableFrom(cls) ||
DTOUtil.isDTOType(cls) ||
- // isJavaBean
cls.isArray();
}