Author: bpoussin Date: 2011-04-18 19:24:56 +0200 (Mon, 18 Apr 2011) New Revision: 817 Url: http://nuiton.org/repositories/revision/wikitty/817 Log: Evolution #1469: Add compartor for FacetTopic, useful to order facet on count or name Added: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/FacetTopicCountComparator.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/FacetTopicNameComparator.java trunk/wikitty-api/src/test/java/org/nuiton/wikitty/search/ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/search/FacetTopicTest.java Added: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/FacetTopicCountComparator.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/FacetTopicCountComparator.java (rev 0) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/FacetTopicCountComparator.java 2011-04-18 17:24:56 UTC (rev 817) @@ -0,0 +1,26 @@ +package org.nuiton.wikitty.search; + +import java.util.Comparator; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * + * @author poussin + * @version $Revision$ + * + * Last update: $Date$ + * by : $Author$ + */ +public class FacetTopicCountComparator implements Comparator<FacetTopic> { + + /** to use log facility, just put in your code: log.info(\"...\"); */ + static private Log log = LogFactory.getLog(FacetTopicCountComparator.class); + + public int compare(FacetTopic o1, FacetTopic o2) { + int thisVal = o1.getCount(); + int anotherVal = o2.getCount(); + // code recupere de Integer.compareTo + return (thisVal<anotherVal ? -1 : (thisVal==anotherVal ? 0 : 1)); + } +} Added: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/FacetTopicNameComparator.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/FacetTopicNameComparator.java (rev 0) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/FacetTopicNameComparator.java 2011-04-18 17:24:56 UTC (rev 817) @@ -0,0 +1,33 @@ +package org.nuiton.wikitty.search; + +import java.util.Comparator; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * + * @author poussin + * @version $Revision$ + * + * Last update: $Date$ + * by : $Author$ + */ +public class FacetTopicNameComparator implements Comparator<FacetTopic> { + + /** to use log facility, just put in your code: log.info(\"...\"); */ + static private Log log = LogFactory.getLog(FacetTopicNameComparator.class); + + protected boolean ignoreCase = true; + + public FacetTopicNameComparator() { + } + + public FacetTopicNameComparator(boolean ignoreCase) { + this.ignoreCase = ignoreCase; + } + + public int compare(FacetTopic o1, FacetTopic o2) { + int result = o1.getTopicName().compareTo(o2.getTopicName()); + return result; + } +} Added: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/search/FacetTopicTest.java =================================================================== --- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/search/FacetTopicTest.java (rev 0) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/search/FacetTopicTest.java 2011-04-18 17:24:56 UTC (rev 817) @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2011 poussin. All rights reserved. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +package org.nuiton.wikitty.search; + +import java.util.TreeSet; +import org.junit.Test; +import static org.junit.Assert.*; + +/** + * + * @author poussin + */ +public class FacetTopicTest { + + /** + * Test of toString method, of class FacetTopic. + */ + @Test + public void testNameComparator() { + TreeSet<FacetTopic> countSort = new TreeSet<FacetTopic>(new FacetTopicCountComparator()); + TreeSet<FacetTopic> nameSort = new TreeSet<FacetTopic>(new FacetTopicNameComparator(false)); + TreeSet<FacetTopic> nameIgnoreCaseSort = new TreeSet<FacetTopic>(new FacetTopicNameComparator(true)); + + FacetTopic a5 = new FacetTopic("test", "a", 5); + FacetTopic b4 = new FacetTopic("test", "b", 4); + FacetTopic c3 = new FacetTopic("test", "c", 3); + FacetTopic d2 = new FacetTopic("test", "d", 2); + FacetTopic e1 = new FacetTopic("test", "e", 1); + FacetTopic A0 = new FacetTopic("test", "A", 0); + + + countSort.add(a5); + nameSort.add(a5); + nameIgnoreCaseSort.add(a5); + + countSort.add(b4); + nameSort.add(b4); + nameIgnoreCaseSort.add(b4); + + countSort.add(c3); + nameSort.add(c3); + nameIgnoreCaseSort.add(c3); + + countSort.add(d2); + nameSort.add(d2); + nameIgnoreCaseSort.add(d2); + + countSort.add(e1); + nameSort.add(e1); + nameIgnoreCaseSort.add(e1); + + countSort.add(A0); + nameSort.add(A0); + nameIgnoreCaseSort.add(A0); + + //TODO poussin 20110418 faire de vrai assert, mais comme faire au plus simple ? + System.out.println("count: " + countSort); + System.out.println("nameSort: " + nameSort); + System.out.println("nameIgnoreCaseSort: " + nameIgnoreCaseSort); + } +}
participants (1)
-
bpoussin@users.nuiton.org