X-Git-Url: http://git.jetbrains.org/?p=idea%2Fcommunity.git;a=blobdiff_plain;f=platform%2Flang-api%2Fsrc%2Fcom%2Fintellij%2Ffacet%2FFacetManager.java;h=63f76f12d0b9633ba3c0cf24f77c8bf021593390;hp=18963cb539ce0b85b6267b947c6f35ae8eb6b50a;hb=9e5e9dadef8562e8ba9126249002d8614c0f58db;hpb=051f2edb2cce91e58392e3c279c5e48ae4806407;ds=sidebyside diff --git a/platform/lang-api/src/com/intellij/facet/FacetManager.java b/platform/lang-api/src/com/intellij/facet/FacetManager.java index 18963cb539ce..63f76f12d0b9 100644 --- a/platform/lang-api/src/com/intellij/facet/FacetManager.java +++ b/platform/lang-api/src/com/intellij/facet/FacetManager.java @@ -1,29 +1,14 @@ -/* - * 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. - */ +// Copyright 2000-2019 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. package com.intellij.facet; import com.intellij.openapi.module.Module; import com.intellij.util.messages.Topic; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -/** - * @author nik - */ +@ApiStatus.NonExtendable public abstract class FacetManager implements FacetModel { public static final Topic FACETS_TOPIC = Topic.create("facet changes", FacetManagerListener.class, Topic.BroadcastDirection.TO_PARENT); @@ -32,23 +17,27 @@ public abstract class FacetManager implements FacetModel { } /** - * Creates the interface for modifiyng set of facets in the module. Call {@link ModifiableFacetModel#commit()} when modification is finished + * Creates the interface for modifying set of facets in the module. Call {@link ModifiableFacetModel#commit()} when modification is finished * @return the modifiable facet model */ @NotNull public abstract ModifiableFacetModel createModifiableModel(); @NotNull - public abstract F createFacet(@NotNull FacetType type, @NotNull String name, - @NotNull C cofiguration, @Nullable Facet underlying); + public abstract , C extends FacetConfiguration> F createFacet(@NotNull FacetType type, @NotNull String name, + @NotNull C configuration, @Nullable Facet underlying); @NotNull - public abstract F createFacet(@NotNull FacetType type, @NotNull String name, - @Nullable Facet underlying); + public abstract , C extends FacetConfiguration> F createFacet(@NotNull FacetType type, @NotNull String name, + @Nullable Facet underlying); @NotNull - public abstract F addFacet(@NotNull FacetType type, @NotNull String name, - @Nullable Facet underlying); + public abstract , C extends FacetConfiguration> F addFacet(@NotNull FacetType type, @NotNull String name, + @Nullable Facet underlying); + /** + * This method must be called when configuration of {@code facet} is changed via its API. + */ + public abstract void facetConfigurationChanged(@NotNull Facet facet); }