'RIDER-47575 Design for Plist Editor -- icon for the button to toggle localized/raw...
[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.Nls;
10 import org.jetbrains.annotations.NonNls;
11 import org.jetbrains.jps.model.serialization.SerializationConstants;
12
13 import java.util.ArrayList;
14 import java.util.List;
15
16 @Tag("artifact")
17 public class ArtifactState {
18   @NonNls public static final String NAME_ATTRIBUTE = "name";
19   private @Nls(capitalization = Nls.Capitalization.Title) String myName;
20   private String myOutputPath;
21   private String myArtifactType = "plain";
22   private boolean myBuildOnMake;
23   private Element myRootElement;
24   private List<ArtifactPropertiesState> myPropertiesList = new ArrayList<>();
25   private String myExternalSystemId;
26
27   @Attribute(NAME_ATTRIBUTE)
28   public @Nls(capitalization = Nls.Capitalization.Title) String getName() {
29     return myName;
30   }
31
32   @Attribute("type")
33   public String getArtifactType() {
34     return myArtifactType;
35   }
36
37   @Attribute("build-on-make")
38   public boolean isBuildOnMake() {
39     return myBuildOnMake;
40   }
41
42   @Attribute(SerializationConstants.EXTERNAL_SYSTEM_ID_ATTRIBUTE)
43   public String getExternalSystemId() {
44     return myExternalSystemId;
45   }
46
47   @Tag("output-path")
48   public String getOutputPath() {
49     return myOutputPath;
50   }
51
52   @Tag("root")
53   public Element getRootElement() {
54     return myRootElement;
55   }
56
57   @Property(surroundWithTag = false)
58   @XCollection
59   public List<ArtifactPropertiesState> getPropertiesList() {
60     return myPropertiesList;
61   }
62
63   public void setPropertiesList(List<ArtifactPropertiesState> propertiesList) {
64     myPropertiesList = propertiesList;
65   }
66
67   public void setArtifactType(String artifactType) {
68     myArtifactType = artifactType;
69   }
70
71   public void setName(@Nls(capitalization = Nls.Capitalization.Title) String name) {
72     myName = name;
73   }
74
75   public void setOutputPath(String outputPath) {
76     myOutputPath = outputPath;
77   }
78
79   public void setBuildOnMake(boolean buildOnMake) {
80     myBuildOnMake = buildOnMake;
81   }
82
83   public void setExternalSystemId(String externalSystemId) {
84     myExternalSystemId = externalSystemId;
85   }
86
87   public void setRootElement(Element rootElement) {
88     myRootElement = rootElement;
89   }
90 }