001/* 002 * #%L 003 * Netarchivesuite - harvester 004 * %% 005 * Copyright (C) 2005 - 2014 The Royal Danish Library, the Danish State and University Library, 006 * the National Library of France and the Austrian National Library. 007 * %% 008 * This program is free software: you can redistribute it and/or modify 009 * it under the terms of the GNU Lesser General Public License as 010 * published by the Free Software Foundation, either version 2.1 of the 011 * License, or (at your option) any later version. 012 * 013 * This program is distributed in the hope that it will be useful, 014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 016 * GNU General Lesser Public License for more details. 017 * 018 * You should have received a copy of the GNU General Lesser Public 019 * License along with this program. If not, see 020 * <http://www.gnu.org/licenses/lgpl-2.1.html>. 021 * #L% 022 */ 023 024package dk.netarkivet.harvester.datamodel; 025 026import java.text.Collator; 027import java.util.Collections; 028import java.util.Comparator; 029import java.util.List; 030import java.util.Locale; 031 032import dk.netarkivet.common.utils.Named; 033 034/** 035 * Utilities for handling named objects. Named objects are objects in our datamodel, which have a name and a comment. 036 */ 037public class NamedUtils { 038 039 /** 040 * Sorts List of Named objects according to language defined in parameter loc. The sorting is done via a compare 041 * function on named objects. The compare function uses Collator for sorting according to language in loc. The 042 * compare function is used as Comparator for the Collection Sorting on Named object Lists. 043 * 044 * @param loc contains the language sorting must adhere to 045 * @param list contains list to be sorted. Objects in the List must implement Named 046 */ 047 public static <T extends Named> void sortNamedObjectList(final Locale loc, List<T> list) { 048 Collections.sort(list, new Comparator<Named>() { 049 public int compare(Named o1, Named o2) { 050 Collator myCollator = Collator.getInstance(loc); 051 return myCollator.compare(o1.getName(), o2.getName()); 052 } 053 }); 054 } 055 056}