New UI for theme autodetection. Additional fixes.
[idea/community.git] / platform / lang-api / src / com / intellij / facet / FacetConfiguration.java
1 // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2
3 package com.intellij.facet;
4
5 import com.intellij.facet.ui.FacetEditorContext;
6 import com.intellij.facet.ui.FacetEditorTab;
7 import com.intellij.facet.ui.FacetValidatorsManager;
8 import com.intellij.openapi.util.InvalidDataException;
9 import com.intellij.openapi.util.WriteExternalException;
10 import org.jdom.Element;
11
12 /**
13  * Implementations of this interface contain settings of a specific facet.
14  *
15  * <p>
16  * Implement {@link com.intellij.openapi.components.PersistentStateComponent} instead of overriding {@link #readExternal(Element)} and
17  * {@link #writeExternal(Element)} methods in your implementation of {@link FacetConfiguration}
18  */
19 public interface FacetConfiguration {
20
21   /**
22    * Creates editor which will be used to edit this facet configuration
23    * @param editorContext context
24    * @param validatorsManager validatorsManager
25    */
26   FacetEditorTab[] createEditorTabs(final FacetEditorContext editorContext, final FacetValidatorsManager validatorsManager);
27
28   /**
29    * @deprecated implement {@link com.intellij.openapi.components.PersistentStateComponent#loadState(Object)} instead
30    */
31   @Deprecated
32   default void readExternal(final Element element) throws InvalidDataException {
33   }
34
35   /**
36    * @deprecated implement {@link com.intellij.openapi.components.PersistentStateComponent#getState()} instead
37    */
38   @Deprecated
39   default void writeExternal(final Element element) throws WriteExternalException {
40   }
41 }