1 /*
2 * $Id$
3 */
4
5 package org.apache.maven.model;
6
7 //---------------------------------/
8 //- Imported classes and packages -/
9 //---------------------------------/
10
11 import java.util.Date;
12
13 /**
14 * Modifications to the build process which is activated based on
15 * environmental
16 * parameters or command line arguments.
17 *
18 * @version $Revision$ $Date$
19 */
20 public class Profile extends ModelBase
21 implements java.io.Serializable
22 {
23
24
25 //--------------------------/
26 //- Class/Member Variables -/
27 //--------------------------/
28
29 /**
30 * The identifier of this build profile. This used both for
31 * command line
32 * activation, and identifies identical profiles to
33 * merge with during inheritance.
34 *
35 */
36 private String id;
37
38 /**
39 * The conditional logic which will automatically trigger the
40 * inclusion of this
41 * profile.
42 */
43 private Activation activation;
44
45 /**
46 * Information required to build the project.
47 */
48 private BuildBase build;
49
50
51 //-----------/
52 //- Methods -/
53 //-----------/
54
55 /**
56 * Get the conditional logic which will automatically trigger
57 * the inclusion of this
58 * profile.
59 *
60 * @return Activation
61 */
62 public Activation getActivation()
63 {
64 return this.activation;
65 } //-- Activation getActivation()
66
67 /**
68 * Get information required to build the project.
69 *
70 * @return BuildBase
71 */
72 public BuildBase getBuild()
73 {
74 return this.build;
75 } //-- BuildBase getBuild()
76
77 /**
78 * Get the identifier of this build profile. This used both for
79 * command line
80 * activation, and identifies identical profiles to
81 * merge with during inheritance.
82 *
83 *
84 * @return String
85 */
86 public String getId()
87 {
88 return this.id;
89 } //-- String getId()
90
91 /**
92 * Set the conditional logic which will automatically trigger
93 * the inclusion of this
94 * profile.
95 *
96 * @param activation
97 */
98 public void setActivation( Activation activation )
99 {
100 this.activation = activation;
101 } //-- void setActivation( Activation )
102
103 /**
104 * Set information required to build the project.
105 *
106 * @param build
107 */
108 public void setBuild( BuildBase build )
109 {
110 this.build = build;
111 } //-- void setBuild( BuildBase )
112
113 /**
114 * Set the identifier of this build profile. This used both for
115 * command line
116 * activation, and identifies identical profiles to
117 * merge with during inheritance.
118 *
119 *
120 * @param id
121 */
122 public void setId( String id )
123 {
124 this.id = id;
125 } //-- void setId( String )
126
127
128
129 // We don't want this to be parseable...it's sort of 'hidden'
130 // default source for this profile is in the pom itself.
131 private String source = "pom";
132
133 public void setSource( String source )
134 {
135 this.source = source;
136 }
137
138 public String getSource()
139 {
140 return source;
141 }
142
143 /**
144 * @see java.lang.Object#toString()
145 */
146 public String toString()
147 {
148 return "Profile {id: " + getId() + ", source: " + getSource() + "}";
149 }
150
151
152 private String modelEncoding = "UTF-8";
153
154 /**
155 * Set an encoding used for reading/writing the model.
156 *
157 * @param modelEncoding the encoding used when reading/writing the model.
158 */
159 public void setModelEncoding( String modelEncoding )
160 {
161 this.modelEncoding = modelEncoding;
162 }
163
164 /**
165 * @return the current encoding used when reading/writing this model.
166 */
167 public String getModelEncoding()
168 {
169 return modelEncoding;
170 }
171 }