/*
 * Copyright 2000-2009 JetBrains s.r.o.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.intellij.openapi.roots.ui.configuration;

import com.intellij.openapi.module.Module;

import java.util.Comparator;

/**
 * @author Eugene Zhuravlev
 *         Date: Dec 1
 * @author 2003
 */
public class ModulesAlphaComparator implements Comparator<Module>{
  public static ModulesAlphaComparator INSTANCE = new ModulesAlphaComparator();

  @Override
  public int compare(Module module1, Module module2) {
    final String name1 = module1.getName();
    final String name2 = module2.getName();
    return name1.compareToIgnoreCase(name2);
  }
}

@@ -20,10 +20,10 @@
 0-20
-09
+14
  Jet
@@ -758,47 +758,8 @@
 lev%0A
- *         Date: Dec 1%0A * @author 2003%0A
  */%0A
@@ -841,16 +841,22 @@
  static 
+final 
 ModulesA
@@ -987,90 +987,127 @@
     
-final String name1 = module1.getName();%0A    final String name2 = module2.getName()
+if (module1 == null && module2 == null) return 0;%0A    if (module1 == null) return -1;%0A    if (module2 == null) return 1
 ;%0A  
@@ -1119,13 +1119,25 @@
 urn 
-name1
+module1.getName()
 .com
@@ -1157,13 +1157,25 @@
 ase(
-name2
+module2.getName()
 );%0A 

update comparator - allow null values