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
;
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();
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();