Author: bleny Date: 2013-07-03 12:36:32 +0200 (Wed, 03 Jul 2013) New Revision: 275 Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revisions... Log: sort suppliers by name Added: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/Suppliers.java trunk/magalie-persistence/src/test/java/com/franciaflex/magalie/persistence/ trunk/magalie-persistence/src/test/java/com/franciaflex/magalie/persistence/SuppliersTest.java Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SuppliersToReceive.java Added: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/Suppliers.java =================================================================== --- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/Suppliers.java (rev 0) +++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/Suppliers.java 2013-07-03 10:36:32 UTC (rev 275) @@ -0,0 +1,24 @@ +package com.franciaflex.magalie.persistence; + +import com.franciaflex.magalie.persistence.entity.Supplier; +import com.google.common.base.Function; +import com.google.common.collect.Ordering; + +import java.util.Comparator; + +public class Suppliers { + + protected static class GetName implements Function<Supplier, String> { + + @Override + public String apply(Supplier supplier) { + return supplier.getName(); + } + } + + public static Comparator<Supplier> orderByNamesComparator() { + Comparator<Supplier> orderByNamesComparator = Ordering.natural().onResultOf(new GetName()); + return orderByNamesComparator; + } + +} Added: trunk/magalie-persistence/src/test/java/com/franciaflex/magalie/persistence/SuppliersTest.java =================================================================== --- trunk/magalie-persistence/src/test/java/com/franciaflex/magalie/persistence/SuppliersTest.java (rev 0) +++ trunk/magalie-persistence/src/test/java/com/franciaflex/magalie/persistence/SuppliersTest.java 2013-07-03 10:36:32 UTC (rev 275) @@ -0,0 +1,42 @@ +package com.franciaflex.magalie.persistence; + +import com.franciaflex.magalie.persistence.entity.Supplier; +import com.google.common.base.Function; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Iterables; +import com.google.common.collect.Sets; +import org.junit.Assert; +import org.junit.Test; + +import java.util.Set; + +public class SuppliersTest { + + @Test + public void testOrderByNamesComparator() throws Exception { + + ImmutableList<String> supplierNames = ImmutableList.of("d", "a", "c", "b"); + + Iterable<Supplier> suppliers = + Iterables.transform( + supplierNames, + new Function<String, Supplier>() { + @Override + public Supplier apply(String name) { + Supplier supplier = new Supplier(); + supplier.setName(name); + return supplier; + } + }); + + Set<Supplier> sortedSuppliers = Sets.newTreeSet(Suppliers.orderByNamesComparator()); + + Iterables.addAll(sortedSuppliers, suppliers); + + Assert.assertEquals("a", Iterables.get(sortedSuppliers, 0).getName()); + Assert.assertEquals("b", Iterables.get(sortedSuppliers, 1).getName()); + Assert.assertEquals("c", Iterables.get(sortedSuppliers, 2).getName()); + Assert.assertEquals("d", Iterables.get(sortedSuppliers, 3).getName()); + + } +} Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SuppliersToReceive.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SuppliersToReceive.java 2013-07-03 08:36:10 UTC (rev 274) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SuppliersToReceive.java 2013-07-03 10:36:32 UTC (rev 275) @@ -23,16 +23,19 @@ * #L% */ +import com.franciaflex.magalie.persistence.Suppliers; import com.franciaflex.magalie.persistence.entity.Supplier; import com.google.common.base.Predicates; +import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; +import com.google.common.collect.Sets; import java.util.List; +import java.util.Set; public class SuppliersToReceive { - protected Iterable<Supplier> suppliers; + protected List<Supplier> suppliers; protected boolean articlesWithoutSuppliers; @@ -44,8 +47,12 @@ articlesWithoutSuppliers = Iterables.contains(suppliers, null); - this.suppliers = Iterables.filter(suppliers, Predicates.notNull()); + Set<Supplier> sortedSuppliers = Sets.newTreeSet(Suppliers.orderByNamesComparator()); + Iterables.addAll(sortedSuppliers, Iterables.filter(suppliers, Predicates.notNull())); + + this.suppliers = ImmutableList.copyOf(sortedSuppliers); + } public boolean isSomethingToReceive() { @@ -53,7 +60,7 @@ } public List<Supplier> getSuppliers() { - return Lists.newArrayList(suppliers); + return suppliers; } public boolean isArticlesWithoutSuppliers() {