7f3a1f6ee827ff60d6136869ef493b54df18592a
[idea/community.git] / jps / model-serialization / src / org / jetbrains / jps / model / serialization / artifact / ArtifactState.java
1 // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 package org.jetbrains.jps.model.serialization.artifact;
3
4 import com.intellij.util.xmlb.annotations.Attribute;
5 import com.intellij.util.xmlb.annotations.Property;
6 import com.intellij.util.xmlb.annotations.Tag;
7 import com.intellij.util.xmlb.annotations.XCollection;
8 import org.jdom.Element;
9 import org.jetbrains.annotations.NonNls;
10 import org.jetbrains.jps.model.serialization.SerializationConstants;
11
12 import java.util.ArrayList;
13 import java.util.List;
14
15 @Tag("artifact")
16 public class ArtifactState {
17   @NonNls public static final String NAME_ATTRIBUTE = "name";
18   private String myName;
19   private String myOutputPath;
20   private String myArtifactType = "plain";
21   private boolean myBuildOnMake;
22   private Element myRootElement;
23   private List<ArtifactPropertiesState> myPropertiesList = new ArrayList<>();
24   private String myExternalSystemId;
25
26   @Attribute(NAME_ATTRIBUTE)
27   public String getName() {
28     return myName;
29   }
30
31   @Attribute("type")
32   public String getArtifactType() {
33     return myArtifactType;
34   }
35
36   @Attribute("build-on-make")
37   public boolean isBuildOnMake() {
38     return myBuildOnMake;
39   }
40
41   @Attribute(value = SerializationConstants.EXTERNAL_SYSTEM_ID_ATTRIBUTE)
42   public String getExternalSystemId() {
43     return myExternalSystemId;
44   }
45
46   @Tag("output-path")
47   public String getOutputPath() {
48     return myOutputPath;
49   }
50
51   @Tag("root")
52   public Element getRootElement() {
53     return myRootElement;
54   }
55
56   @Property(surroundWithTag = false)
57   @XCollection
58   public List<ArtifactPropertiesState> getPropertiesList() {
59     return myPropertiesList;
60   }
61
62   public void setPropertiesList(List<ArtifactPropertiesState> propertiesList) {
63     myPropertiesList = propertiesList;
64   }
65
66   public void setArtifactType(String artifactType) {
67     myArtifactType = artifactType;
68   }
69
70   public void setName(String name) {
71     myName = name;
72   }
73
74   public void setOutputPath(String outputPath) {
75     myOutputPath = outputPath;
76   }
77
78   public void setBuildOnMake(boolean buildOnMake) {
79     myBuildOnMake = buildOnMake;
80   }
81
82   public void setExternalSystemId(String externalSystemId) {
83     myExternalSystemId = externalSystemId;
84   }
85
86   public void setRootElement(Element rootElement) {
87     myRootElement = rootElement;
88   }
89 }