001    package EVolve.util;
002    
003    /* EVolve - an Extensible Software Visualization Framework
004     * Copyright (C) 2001-2002 Qin Wang
005     *
006     * This library is free software; you can redistribute it and/or
007     * modify it under the terms of the GNU Library General Public
008     * License as published by the Free Software Foundation; either
009     * version 2 of the License, or (at your option) any later version.
010     *
011     * This library is distributed in the hope that it will be useful,
012     * but WITHOUT ANY WARRANTY; without even the implied warranty of
013     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
014     * Library General Public License for more details.
015     *
016     * You should have received a copy of the GNU Library General Public
017     * License along with this library; if not, write to the
018     * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
019     * Boston, MA 02111-1307, USA.
020     */
021    
022    /*
023     * EVolve is distributed at http://www.sable.mcgill.ca/EVolve/
024     */
025    
026    import EVolve.data.*;
027    
028    public class NumericStringComparator implements EntityComparator {
029            public String getName() {
030                    return "Numerical";
031            }
032    
033            public int compare(Entity entity1, Entity entity2) {
034                    String name1 = entity1.getName();
035                    String name2 = entity2.getName();
036    
037                    try {
038                            return Integer.parseInt(name1) - Integer.parseInt(name2);
039                    } catch (NumberFormatException e) {
040                            return name1.compareTo(name2);
041                    }
042            }
043    }