migrated to artifacts
[fedora-idea.git] / java / compiler / openapi / src / com / intellij / packaging / artifacts / ArtifactType.java
blob5bd67e7d6acd000ce91af42f651656716c23bd83
1 package com.intellij.packaging.artifacts;
3 import com.intellij.openapi.extensions.ExtensionPointName;
4 import com.intellij.openapi.extensions.Extensions;
5 import com.intellij.packaging.elements.CompositePackagingElement;
6 import com.intellij.packaging.elements.PackagingElement;
7 import com.intellij.packaging.elements.PackagingElementResolvingContext;
8 import com.intellij.packaging.ui.ArtifactValidationManager;
9 import com.intellij.packaging.ui.PackagingSourceItem;
10 import org.jetbrains.annotations.NonNls;
11 import org.jetbrains.annotations.NotNull;
12 import org.jetbrains.annotations.Nullable;
14 import javax.swing.*;
15 import java.util.List;
17 /**
18 * @author nik
20 public abstract class ArtifactType {
21 public static final ExtensionPointName<ArtifactType> EP_NAME = ExtensionPointName.create("com.intellij.packaging.artifactType");
22 private final String myId;
23 private final String myTitle;
25 protected ArtifactType(@NonNls String id, String title) {
26 myId = id;
27 myTitle = title;
30 public final String getId() {
31 return myId;
34 public String getPresentableName() {
35 return myTitle;
38 @NotNull
39 public abstract Icon getIcon();
41 @Nullable
42 public abstract String getDefaultPathFor(@NotNull PackagingSourceItem sourceItem);
44 @Nullable
45 public abstract String getDefaultPathFor(@NotNull PackagingElement<?> element, @NotNull PackagingElementResolvingContext context);
47 public boolean isSuitableItem(@NotNull PackagingSourceItem sourceItem) {
48 return true;
51 public static ArtifactType[] getAllTypes() {
52 return Extensions.getExtensions(EP_NAME);
55 @Nullable
56 public static ArtifactType findById(@NotNull @NonNls String id) {
57 for (ArtifactType type : getAllTypes()) {
58 if (id.equals(type.getId())) {
59 return type;
62 return null;
65 @NotNull
66 public abstract CompositePackagingElement<?> createRootElement(@NotNull String artifactName);
68 public void checkRootElement(@NotNull CompositePackagingElement<?> rootElement, @NotNull Artifact artifact, @NotNull ArtifactValidationManager manager) {
71 @Nullable
72 public List<? extends PackagingElement<?>> getSubstitution(@NotNull Artifact artifact, @NotNull PackagingElementResolvingContext context,
73 @NotNull ArtifactType parentType) {
74 return null;