001/*-------------------------------------------------------------------------+
002|                                                                          |
003| Copyright 2005-2011 The ConQAT Project                                   |
004|                                                                          |
005| Licensed under the Apache License, Version 2.0 (the "License");          |
006| you may not use this file except in compliance with the License.         |
007| You may obtain a copy of the License at                                  |
008|                                                                          |
009|    http://www.apache.org/licenses/LICENSE-2.0                            |
010|                                                                          |
011| Unless required by applicable law or agreed to in writing, software      |
012| distributed under the License is distributed on an "AS IS" BASIS,        |
013| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
014| See the License for the specific language governing permissions and      |
015| limitations under the License.                                           |
016+-------------------------------------------------------------------------*/
017package org.conqat.lib.commons.collections;
018
019import java.util.Comparator;
020
021/**
022 * Compares strings by their length. Using this comparator on a list of string
023 * makes shorter strings appear first.
024 * 
025 * 
026 * @author Florian Deissenboeck
027 */
028public class StringLengthComparator implements Comparator<String> {
029
030        /**
031         * Compare strings by their length. Using this comparator on a list of
032         * string makes shorter strings appear first. {@inheritDoc}
033         */
034        @Override
035        public int compare(String string1, String string2) {
036                int length1;
037                int length2;
038
039                if (string1 == null) {
040                        length1 = 0;
041                } else {
042                        length1 = string1.length();
043                }
044
045                if (string2 == null) {
046                        length2 = 0;
047                } else {
048                        length2 = string2.length();
049                }
050
051                return length1 - length2;
052        }
053
054}