migrated to artifacts
[fedora-idea.git] / java / compiler / openapi / src / com / intellij / packaging / artifacts / ArtifactManager.java
blob8f660c20bbffa480a50a30c3645f37ae91aa2bd4
1 package com.intellij.packaging.artifacts;
3 import com.intellij.openapi.components.ServiceManager;
4 import com.intellij.openapi.project.Project;
5 import com.intellij.openapi.util.ModificationTracker;
6 import com.intellij.packaging.elements.CompositePackagingElement;
7 import com.intellij.packaging.elements.PackagingElement;
8 import com.intellij.packaging.elements.PackagingElementResolvingContext;
9 import com.intellij.util.messages.Topic;
10 import org.jetbrains.annotations.NonNls;
11 import org.jetbrains.annotations.NotNull;
12 import org.jetbrains.annotations.Nullable;
14 import java.util.Collection;
15 import java.util.Comparator;
17 /**
18 * @author nik
20 public abstract class ArtifactManager implements ArtifactModel {
21 public static final Topic<ArtifactListener> TOPIC = Topic.create("artifacts changes", ArtifactListener.class);
22 public static final Comparator<Artifact> ARTIFACT_COMPARATOR = new Comparator<Artifact>() {
23 public int compare(Artifact o1, Artifact o2) {
24 return o1.getName().compareToIgnoreCase(o2.getName());
28 public static ArtifactManager getInstance(@NotNull Project project) {
29 return ServiceManager.getService(project, ArtifactManager.class);
32 public abstract Artifact[] getSortedArtifacts();
34 public abstract ModifiableArtifactModel createModifiableModel();
36 public abstract PackagingElementResolvingContext getResolvingContext();
38 @NotNull
39 public abstract Artifact addArtifact(@NonNls @NotNull String name, @NotNull ArtifactType type, @Nullable CompositePackagingElement<?> root);
41 public abstract void addElementsToDirectory(@NotNull Artifact artifact, @NotNull String relativePath,
42 @NotNull Collection<? extends PackagingElement<?>> elements);
44 public abstract void addElementsToDirectory(@NotNull Artifact artifact, @NotNull String relativePath,
45 @NotNull PackagingElement<?> element);
47 public abstract ModificationTracker getModificationTracker();