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

Reply via email to