001/**
002 * Copyright 2010-2014 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package org.kuali.common.util.metainf.model;
017
018import java.util.Comparator;
019
020/**
021 * <p>
022 * Sort lexicographically by directory structure, then filename of the locations contained in each {@code MetaInfResource}
023 * </p>
024 * 
025 * For example:
026 * 
027 * <pre>
028 *   2 - /a/foo2.txt     1 - /a/foo1.txt
029 *   3 - /a/b/foo.txt    2 - /a/foo2.txt
030 *   1 - /a/foo1.txt     3 - /a/b/foo.txt
031 * </pre>
032 * 
033 */
034public class MetaInfResourcePathComparator implements Comparator<MetaInfResource> {
035
036        private final PathComparator comparator = new PathComparator();
037
038        @Override
039        public int compare(MetaInfResource one, MetaInfResource two) {
040                return comparator.compare(one.getLocation(), two.getLocation());
041        }
042}