Hello Marc and all
I merged the work to the JDK7 branch (I will merge to JDK6 and trunk
later this week). They were no blocking issue. On the JDK7 branch, I
replaced the lambda expressions by anonymous classes except in two cases:
1) I replaced the following expression:
openedStatements.stream().map(DBFStatement::toString).collect(Collectors.joining(",
"))
by:
openedStatements.toString()
The output should be identical except for extra [ and ] enclosing
characters. Let me know if this is an issue, as there is other
alternatives we can apply.
2) In ClauseResolver, method compare(DBFRecordBasedResultSet) has a
large amount of lambda expressions performing "trials and errors" until
it succeed in promoting two java.lang.Numbers to the same type. Instead
of converting all lambda expressions to anonymous classes, I replaced
them by the following code (on JDK7 branch only) using an existing SIS
class (org.apache.sis.util.Numbers):
if (value1 instanceof Number && value2 instanceof Number) {
// Promote Short to Integer, Long, Float or Double.
final Class<? extends Number> widestClass = Numbers.widestClass(
value1.getClass().asSubclass(Number.class),
value2.getClass().asSubclass(Number.class));
Number n1 = Numbers.cast((Number) value1, widestClass);
Number n2 = Numbers.cast((Number) value2, widestClass);
return compare(rs, n1, n2);
}
Martin