simplify GTDUCollector a bit more
[idea/community.git] / java / compiler / openapi / src / com / intellij / packaging / artifacts / Artifact.java
1 /*
2  * Copyright 2000-2009 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.intellij.packaging.artifacts;
17
18 import com.intellij.openapi.roots.ProjectModelBuildableElement;
19 import com.intellij.openapi.util.UserDataHolder;
20 import com.intellij.openapi.vfs.VirtualFile;
21 import com.intellij.packaging.elements.CompositePackagingElement;
22 import org.jetbrains.annotations.Nls;
23 import org.jetbrains.annotations.NotNull;
24 import org.jetbrains.annotations.Nullable;
25
26 import java.util.Collection;
27
28 /**
29  * Describes an artifact configuration. Use {@link ArtifactManager} to create new and get existing artifacts.
30  */
31 public interface Artifact extends UserDataHolder, ProjectModelBuildableElement {
32   @NotNull
33   ArtifactType getArtifactType();
34
35   @Nls(capitalization = Nls.Capitalization.Title) String getName();
36
37   boolean isBuildOnMake();
38
39   /**
40    * @return the root element in the artifact's output layout tree
41    */
42   @NotNull
43   CompositePackagingElement<?> getRootElement();
44
45   @Nullable
46   String getOutputPath();
47
48   Collection<? extends ArtifactPropertiesProvider> getPropertiesProviders();
49
50   ArtifactProperties<?> getProperties(@NotNull ArtifactPropertiesProvider propertiesProvider);
51
52   @Nullable
53   VirtualFile getOutputFile();
54
55   @Nullable
56   String getOutputFilePath();
57 }