Updating versions of project dependencies: jdkBuild->11_0_8b1098.1
[idea/community.git] / java / compiler / openapi / src / com / intellij / packaging / artifacts / ArtifactType.java
index e5c64b7569a87cff0647bc1507e8e9ced109c1c4..11197c336e322c7d556fc7de36380bbd919ab943 100644 (file)
@@ -2,12 +2,14 @@
 package com.intellij.packaging.artifacts;
 
 import com.intellij.openapi.extensions.ExtensionPointName;
+import com.intellij.openapi.util.NlsSafe;
 import com.intellij.packaging.elements.CompositePackagingElement;
 import com.intellij.packaging.elements.PackagingElement;
 import com.intellij.packaging.elements.PackagingElementOutputKind;
 import com.intellij.packaging.elements.PackagingElementResolvingContext;
 import com.intellij.packaging.ui.ArtifactProblemsHolder;
 import com.intellij.packaging.ui.PackagingSourceItem;
+import org.jetbrains.annotations.Nls;
 import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -15,23 +17,33 @@ import org.jetbrains.annotations.Nullable;
 import javax.swing.*;
 import java.util.Collections;
 import java.util.List;
+import java.util.function.Supplier;
 
 public abstract class ArtifactType {
   public static final ExtensionPointName<ArtifactType> EP_NAME = ExtensionPointName.create("com.intellij.packaging.artifactType");
   private final String myId;
-  private final String myTitle;
+  private final Supplier<@Nls(capitalization = Nls.Capitalization.Sentence) String> myTitle;
+
+  /**
+   * @deprecated This constructor is meant to provide the binary compatibility with the external plugins.
+   * Please use the constructor that accepts a messagePointer for {@link ArtifactType#myTitle}
+   */
+  @Deprecated
+  protected ArtifactType(@NonNls String id, @Nls(capitalization = Nls.Capitalization.Sentence) String title) {
+    this(id, () -> title);
+  }
 
-  protected ArtifactType(@NonNls String id, String title) {
+  protected ArtifactType(@NonNls String id, Supplier<@Nls(capitalization = Nls.Capitalization.Sentence) String> title) {
     myId = id;
     myTitle = title;
   }
 
-  public final String getId() {
+  public final @NonNls String getId() {
     return myId;
   }
 
-  public String getPresentableName() {
-    return myTitle;
+  public @Nls(capitalization = Nls.Capitalization.Sentence) String getPresentableName() {
+    return myTitle.get();
   }
 
   @NotNull
@@ -43,7 +55,7 @@ public abstract class ArtifactType {
   }
 
   @Nullable
-  public abstract String getDefaultPathFor(@NotNull PackagingElementOutputKind kind);
+  public abstract @NlsSafe String getDefaultPathFor(@NotNull PackagingElementOutputKind kind);
 
   public boolean isSuitableItem(@NotNull PackagingSourceItem sourceItem) {
     return true;