diff --git a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/DisabledAutodetectionByTypeElement.java b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/DisabledAutodetectionByTypeElement.java index 0a157a2a9826..e69ee791ebef 100644 --- a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/DisabledAutodetectionByTypeElement.java +++ b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/DisabledAutodetectionByTypeElement.java @@ -16,15 +16,16 @@ package com.intellij.facet.impl.autodetecting; +import com.intellij.openapi.util.SystemInfo; +import com.intellij.openapi.util.text.StringUtil; +import com.intellij.util.containers.SortedList; import com.intellij.util.xmlb.annotations.AbstractCollection; import com.intellij.util.xmlb.annotations.Attribute; import com.intellij.util.xmlb.annotations.Tag; -import com.intellij.openapi.util.SystemInfo; -import com.intellij.openapi.util.text.StringUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.ArrayList; +import java.util.Comparator; import java.util.Iterator; import java.util.List; @@ -33,8 +34,14 @@ import java.util.List; */ @Tag("facet-type") public class DisabledAutodetectionByTypeElement { + public static final Comparator COMPARATOR = new Comparator() { + @Override + public int compare(DisabledAutodetectionByTypeElement o1, DisabledAutodetectionByTypeElement o2) { + return StringUtil.compare(o1.getFacetTypeId(), o2.getFacetTypeId(), true); + } + }; private String myFacetTypeId; - private List myModuleElements = new ArrayList(); + private List myModuleElements = new SortedList(DisabledAutodetectionInModuleElement.COMPARATOR); public DisabledAutodetectionByTypeElement() { } diff --git a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/DisabledAutodetectionInModuleElement.java b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/DisabledAutodetectionInModuleElement.java index 0489a2a33499..84b6e6a4c56e 100644 --- a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/DisabledAutodetectionInModuleElement.java +++ b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/DisabledAutodetectionInModuleElement.java @@ -16,10 +16,12 @@ package com.intellij.facet.impl.autodetecting; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.xmlb.annotations.AbstractCollection; import com.intellij.util.xmlb.annotations.Attribute; import com.intellij.util.xmlb.annotations.Tag; +import java.util.Comparator; import java.util.LinkedHashSet; import java.util.Set; @@ -28,6 +30,12 @@ import java.util.Set; */ @Tag("module") public class DisabledAutodetectionInModuleElement { + public static final Comparator COMPARATOR = new Comparator() { + @Override + public int compare(DisabledAutodetectionInModuleElement o1, DisabledAutodetectionInModuleElement o2) { + return StringUtil.compare(o1.getModuleName(), o2.getModuleName(), true); + } + }; private String myModuleName; private Set myFiles = new LinkedHashSet(); private Set myDirectories = new LinkedHashSet(); diff --git a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/DisabledAutodetectionInfo.java b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/DisabledAutodetectionInfo.java index d672e1e2a7c1..e05e3ab07e38 100644 --- a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/DisabledAutodetectionInfo.java +++ b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/DisabledAutodetectionInfo.java @@ -16,20 +16,19 @@ package com.intellij.facet.impl.autodetecting; +import com.intellij.util.containers.SortedList; import com.intellij.util.xmlb.annotations.AbstractCollection; import com.intellij.util.xmlb.annotations.Tag; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.ArrayList; import java.util.List; -import java.util.Iterator; /** * @author nik */ public class DisabledAutodetectionInfo { - private List myElements = new ArrayList(); + private List myElements = new SortedList(DisabledAutodetectionByTypeElement.COMPARATOR); @Tag("autodetection-disabled") @AbstractCollection(surroundWithTag = false) @@ -47,13 +46,9 @@ public class DisabledAutodetectionInfo { } public void replaceElement(@NotNull String facetTypeId, @Nullable DisabledAutodetectionByTypeElement element) { - Iterator iterator = myElements.iterator(); - while (iterator.hasNext()) { - DisabledAutodetectionByTypeElement typeElement = iterator.next(); - if (typeElement.getFacetTypeId().equals(facetTypeId)) { - iterator.remove(); - break; - } + final DisabledAutodetectionByTypeElement old = findElement(facetTypeId); + if (old != null) { + myElements.remove(old); } if (element != null) { myElements.add(element);