001 /*--------------------------------------------------------------------------+ 002 $Id: ToStringComparator.java 26283 2010-02-18 11:18:57Z juergens $ 003 | | 004 | Copyright 2005-2010 Technische Universitaet Muenchen | 005 | | 006 | Licensed under the Apache License, Version 2.0 (the "License"); | 007 | you may not use this file except in compliance with the License. | 008 | You may obtain a copy of the License at | 009 | | 010 | http://www.apache.org/licenses/LICENSE-2.0 | 011 | | 012 | Unless required by applicable law or agreed to in writing, software | 013 | distributed under the License is distributed on an "AS IS" BASIS, | 014 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 015 | See the License for the specific language governing permissions and | 016 | limitations under the License. | 017 +--------------------------------------------------------------------------*/ 018 package edu.tum.cs.commons.collections; 019 020 import java.text.Collator; 021 import java.util.Comparator; 022 023 /** 024 * This comparator compares objects by their toString() representation. 025 * 026 * @author deissenb 027 * @author $Author: juergens $ 028 * @version $Rev: 26283 $ 029 * @levd.rating GREEN Hash: DEE51D79623A0DED83E2FE665BC1E279 030 */ 031 public class ToStringComparator implements Comparator<Object> { 032 033 /** Instance of this comparator. */ 034 public static final ToStringComparator INSTANCE = new ToStringComparator(); 035 036 /** Collator used for comparing. */ 037 private final Collator collator; 038 039 /** Create new comparator based on the default locale's collator. */ 040 public ToStringComparator() { 041 collator = Collator.getInstance(); 042 } 043 044 /** Create new comparator with specific collator. */ 045 public ToStringComparator(Collator collator) { 046 this.collator = collator; 047 } 048 049 /** Compare by toString() representation. */ 050 public int compare(Object o1, Object o2) { 051 return collator.compare(o1.toString(), o2.toString()); 052 } 053 054 }