mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
remove obsolete dependent facet from module (jsf)
This commit is contained in:
@@ -19,11 +19,10 @@ package com.intellij.conversion;
|
||||
import com.intellij.facet.FacetManagerImpl;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jps.model.serialization.facet.JpsFacetSerializer;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Collection;
|
||||
|
||||
public class DetachFacetConversionProcessor extends ConversionProcessor<ModuleSettings>{
|
||||
public class DetachFacetConversionProcessor extends ConversionProcessor<ModuleSettings> {
|
||||
private final String[] myFacetNames;
|
||||
|
||||
public DetachFacetConversionProcessor(@NotNull String... names) {
|
||||
@@ -44,20 +43,15 @@ public class DetachFacetConversionProcessor extends ConversionProcessor<ModuleSe
|
||||
public void process(ModuleSettings moduleSettings) throws CannotConvertException {
|
||||
final Element facetManagerElement = moduleSettings.getComponentElement(FacetManagerImpl.COMPONENT_NAME);
|
||||
if (facetManagerElement == null) return;
|
||||
|
||||
final Element[] facetElements = getChildren(facetManagerElement, JpsFacetSerializer.FACET_TAG);
|
||||
for (Element facetElement : facetElements) {
|
||||
final String facetType = facetElement.getAttributeValue(JpsFacetSerializer.TYPE_ATTRIBUTE);
|
||||
for (String facetName : myFacetNames) {
|
||||
if (facetName.equals(facetType)) {
|
||||
facetElement.detach();
|
||||
}
|
||||
for (String facetName : myFacetNames) {
|
||||
for (Element element : getElements(moduleSettings, facetName)) {
|
||||
element.detach();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static Element[] getChildren(Element parent, final String name) {
|
||||
final List<?> children = parent.getChildren(name);
|
||||
return children.toArray(new Element[children.size()]);
|
||||
private static Element[] getElements(ModuleSettings moduleSettings, String facetName) {
|
||||
Collection<? extends Element> elements = moduleSettings.getFacetElements(facetName);
|
||||
return elements.toArray(new Element[elements.size()]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,12 +76,20 @@ public class ModuleSettingsImpl extends ComponentManagerSettingsImpl implements
|
||||
public Collection<? extends Element> getFacetElements(@NotNull String facetTypeId) {
|
||||
final Element facetManager = getComponentElement(FacetManagerImpl.COMPONENT_NAME);
|
||||
final ArrayList<Element> elements = new ArrayList<Element>();
|
||||
for (Element child : JDOMUtil.getChildren(facetManager, JpsFacetSerializer.FACET_TAG)) {
|
||||
|
||||
addFacetTypes(facetTypeId, facetManager, elements);
|
||||
|
||||
return elements;
|
||||
}
|
||||
|
||||
private static void addFacetTypes(@NotNull String facetTypeId, @Nullable Element parent, @NotNull ArrayList<Element> elements) {
|
||||
for (Element child : JDOMUtil.getChildren(parent, JpsFacetSerializer.FACET_TAG)) {
|
||||
if (facetTypeId.equals(child.getAttributeValue(JpsFacetSerializer.TYPE_ATTRIBUTE))) {
|
||||
elements.add(child);
|
||||
} else {
|
||||
addFacetTypes(facetTypeId, child, elements);
|
||||
}
|
||||
}
|
||||
return elements;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user