From d87401473b37216003d112f640d314f44a1322b1 Mon Sep 17 00:00:00 2001 From: nik Date: Fri, 13 Dec 2019 12:58:48 +0300 Subject: [PATCH] [facets API] mark FacetManagerImpl as Internal and get rid of some of its usages This class isn't supposed to be used in plugins, and such usages may cause problems when we provide alternative implementation of Facets API via the new workspace model. GitOrigin-RevId: 5f4ee9c9dd884345d7ed58a1b2f1cf658589c186 --- .../jps/model/serialization/JpsProjectLoader.java | 2 +- .../model/serialization/facet/JpsFacetSerializer.java | 1 + .../conversion/DetachFacetConversionProcessor.java | 4 ++-- .../com/intellij/conversion/impl/ModuleSettingsImpl.java | 5 ++--- .../intellij/facet/FacetFromExternalSourcesStorage.java | 3 ++- .../src/com/intellij/facet/FacetManagerImpl.java | 9 +++++---- 6 files changed, 13 insertions(+), 11 deletions(-) diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectLoader.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectLoader.java index c8fa8eec6a40..c6020416e3c0 100644 --- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectLoader.java +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectLoader.java @@ -433,7 +433,7 @@ public class JpsProjectLoader extends JpsLoaderBase { } } } - Element facetsTag = JDomSerializationUtil.findComponent(moduleRoot, "FacetManager"); + Element facetsTag = JDomSerializationUtil.findComponent(moduleRoot, JpsFacetSerializer.FACET_MANAGER_COMPONENT_NAME); Element externalFacetsTag = JDomSerializationUtil.findComponent(moduleRoot, "ExternalFacetManager"); Element mergedFacetsTag; if (facetsTag == null) { diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/facet/JpsFacetSerializer.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/facet/JpsFacetSerializer.java index fe2b1daf615b..b29417ff93aa 100644 --- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/facet/JpsFacetSerializer.java +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/facet/JpsFacetSerializer.java @@ -37,6 +37,7 @@ public class JpsFacetSerializer { @NonNls public static final String TYPE_ATTRIBUTE = "type"; @NonNls public static final String CONFIGURATION_TAG = "configuration"; @NonNls public static final String NAME_ATTRIBUTE = "name"; + @NonNls public static final String FACET_MANAGER_COMPONENT_NAME = "FacetManager"; public static void loadFacets(JpsModule module, @Nullable Element facetManagerElement) { if (facetManagerElement == null) return; diff --git a/platform/lang-impl/src/com/intellij/conversion/DetachFacetConversionProcessor.java b/platform/lang-impl/src/com/intellij/conversion/DetachFacetConversionProcessor.java index 8f7343ef2dc5..9b686ee9f840 100644 --- a/platform/lang-impl/src/com/intellij/conversion/DetachFacetConversionProcessor.java +++ b/platform/lang-impl/src/com/intellij/conversion/DetachFacetConversionProcessor.java @@ -16,9 +16,9 @@ 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.Collection; @@ -41,7 +41,7 @@ public class DetachFacetConversionProcessor extends ConversionProcessor getFacetElements(@NotNull String facetTypeId) { - final Element facetManager = getComponentElement(FacetManagerImpl.COMPONENT_NAME); + final Element facetManager = getComponentElement(JpsFacetSerializer.FACET_MANAGER_COMPONENT_NAME); final ArrayList elements = new ArrayList<>(); addFacetTypes(facetTypeId, facetManager, elements); @@ -86,7 +85,7 @@ public class ModuleSettingsImpl extends ComponentManagerSettingsImpl implements @Override public void addFacetElement(@NotNull String facetTypeId, @NotNull String facetName, Element configuration) { - Element componentElement = JDomSerializationUtil.findOrCreateComponentElement(getRootElement(), FacetManagerImpl.COMPONENT_NAME); + Element componentElement = JDomSerializationUtil.findOrCreateComponentElement(getRootElement(), JpsFacetSerializer.FACET_MANAGER_COMPONENT_NAME); Element facetElement = new Element(JpsFacetSerializer.FACET_TAG); facetElement.setAttribute(JpsFacetSerializer.TYPE_ATTRIBUTE, facetTypeId); facetElement.setAttribute(JpsFacetSerializer.NAME_ATTRIBUTE, facetName); diff --git a/platform/lang-impl/src/com/intellij/facet/FacetFromExternalSourcesStorage.java b/platform/lang-impl/src/com/intellij/facet/FacetFromExternalSourcesStorage.java index 03e6f95b0daa..bdd5abdb6299 100644 --- a/platform/lang-impl/src/com/intellij/facet/FacetFromExternalSourcesStorage.java +++ b/platform/lang-impl/src/com/intellij/facet/FacetFromExternalSourcesStorage.java @@ -12,11 +12,12 @@ import com.intellij.util.xmlb.XmlSerializerUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jps.model.serialization.facet.FacetManagerState; +import org.jetbrains.jps.model.serialization.facet.JpsFacetSerializer; /** * @author nik */ -@State(name = "External" + FacetManagerImpl.COMPONENT_NAME, externalStorageOnly = true) +@State(name = "External" + JpsFacetSerializer.FACET_MANAGER_COMPONENT_NAME, externalStorageOnly = true) public class FacetFromExternalSourcesStorage implements PersistentStateComponent, ProjectModelElement { private FacetManagerState myState = new FacetManagerState(); private final Module myModule; diff --git a/platform/lang-impl/src/com/intellij/facet/FacetManagerImpl.java b/platform/lang-impl/src/com/intellij/facet/FacetManagerImpl.java index a6d2eb65b73a..ae4e17d872ab 100644 --- a/platform/lang-impl/src/com/intellij/facet/FacetManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/facet/FacetManagerImpl.java @@ -29,11 +29,12 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.messages.MessageBus; import org.jdom.Element; -import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jps.model.serialization.facet.FacetManagerState; import org.jetbrains.jps.model.serialization.facet.FacetState; +import org.jetbrains.jps.model.serialization.facet.JpsFacetSerializer; import java.util.*; import java.util.function.Predicate; @@ -41,10 +42,10 @@ import java.util.function.Predicate; /** * @author nik */ -@State(name = FacetManagerImpl.COMPONENT_NAME, useLoadedStateAsExisting = false) +@State(name = JpsFacetSerializer.FACET_MANAGER_COMPONENT_NAME, useLoadedStateAsExisting = false) +@ApiStatus.Internal public final class FacetManagerImpl extends FacetManager implements ModuleComponent, PersistentStateComponent { private static final Logger LOG = Logger.getInstance(FacetManagerImpl.class); - @NonNls public static final String COMPONENT_NAME = "FacetManager"; private final Module myModule; private final FacetManagerModel myModel = new FacetManagerModel(); @@ -285,7 +286,7 @@ public final class FacetManagerImpl extends FacetManager implements ModuleCompon doLoadState(state); } - protected void doLoadState(@Nullable FacetManagerState state) { + private void doLoadState(@Nullable FacetManagerState state) { ModifiableFacetModel model = new FacetModelImpl(this); FacetManagerState importedFacetsState = myExternalSourcesStorage.getLoadedState(); addFacets(ContainerUtil.concat(state == null ? Collections.emptyList() : state.getFacets(), importedFacetsState.getFacets()), null, model);