Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
Resource |
|
| 1.1;1.1 |
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 | * This element describes all of the classpath resources associated | |
15 | * with a project | |
16 | * or unit tests. | |
17 | * | |
18 | * @version $Revision$ $Date$ | |
19 | */ | |
20 | 0 | public class Resource extends FileSet |
21 | implements java.io.Serializable | |
22 | { | |
23 | ||
24 | ||
25 | //--------------------------/ | |
26 | //- Class/Member Variables -/ | |
27 | //--------------------------/ | |
28 | ||
29 | /** | |
30 | * | |
31 | * | |
32 | * Describe the resource target path. The path is | |
33 | * relative to the target/classes | |
34 | * directory (i.e. | |
35 | * <code>${project.build.outputDirectory}</code>). | |
36 | * For example, if you want that resource to appear | |
37 | * in a specific package | |
38 | * (<code>org.apache.maven.messages</code>), you | |
39 | * must specify this | |
40 | * element with this value: | |
41 | * <code>org/apache/maven/messages</code>. | |
42 | * This is not required if you simply put the | |
43 | * resources in that directory | |
44 | * structure at the source, however. | |
45 | * | |
46 | * | |
47 | */ | |
48 | private String targetPath; | |
49 | ||
50 | /** | |
51 | * | |
52 | * | |
53 | * Whether resources are filtered to replace tokens | |
54 | * with parameterised values or not. | |
55 | * The values are taken from the | |
56 | * <code>properties</code> element and from the | |
57 | * properties in the files listed in the | |
58 | * <code>filters</code> element. | |
59 | * | |
60 | * | |
61 | */ | |
62 | 0 | private boolean filtering = false; |
63 | ||
64 | /** | |
65 | * | |
66 | * | |
67 | * FOR INTERNAL USE ONLY. This is a unique | |
68 | * identifier assigned to each | |
69 | * resource to allow Maven to merge changes to this | |
70 | * resource that take | |
71 | * place during the execution of a plugin. This | |
72 | * field must be managed | |
73 | * by the generated parser and formatter classes in | |
74 | * order to allow it | |
75 | * to survive model interpolation. | |
76 | * | |
77 | * | |
78 | */ | |
79 | private String mergeId; | |
80 | ||
81 | ||
82 | //-----------/ | |
83 | //- Methods -/ | |
84 | //-----------/ | |
85 | ||
86 | /** | |
87 | * Get | |
88 | * | |
89 | * FOR INTERNAL USE ONLY. This is a unique | |
90 | * identifier assigned to each | |
91 | * resource to allow Maven to merge changes to this | |
92 | * resource that take | |
93 | * place during the execution of a plugin. This | |
94 | * field must be managed | |
95 | * by the generated parser and formatter classes in | |
96 | * order to allow it | |
97 | * to survive model interpolation. | |
98 | * | |
99 | * | |
100 | * | |
101 | * @return String | |
102 | */ | |
103 | public String getMergeId() | |
104 | { | |
105 | 0 | return this.mergeId; |
106 | } //-- String getMergeId() | |
107 | ||
108 | /** | |
109 | * Get | |
110 | * | |
111 | * Describe the resource target path. The path is | |
112 | * relative to the target/classes | |
113 | * directory (i.e. | |
114 | * <code>${project.build.outputDirectory}</code>). | |
115 | * For example, if you want that resource to appear | |
116 | * in a specific package | |
117 | * (<code>org.apache.maven.messages</code>), you | |
118 | * must specify this | |
119 | * element with this value: | |
120 | * <code>org/apache/maven/messages</code>. | |
121 | * This is not required if you simply put the | |
122 | * resources in that directory | |
123 | * structure at the source, however. | |
124 | * | |
125 | * | |
126 | * | |
127 | * @return String | |
128 | */ | |
129 | public String getTargetPath() | |
130 | { | |
131 | 0 | return this.targetPath; |
132 | } //-- String getTargetPath() | |
133 | ||
134 | /** | |
135 | * Get | |
136 | * | |
137 | * Whether resources are filtered to replace tokens | |
138 | * with parameterised values or not. | |
139 | * The values are taken from the | |
140 | * <code>properties</code> element and from the | |
141 | * properties in the files listed in the | |
142 | * <code>filters</code> element. | |
143 | * | |
144 | * | |
145 | * | |
146 | * @return boolean | |
147 | */ | |
148 | public boolean isFiltering() | |
149 | { | |
150 | 0 | return this.filtering; |
151 | } //-- boolean isFiltering() | |
152 | ||
153 | /** | |
154 | * Set | |
155 | * | |
156 | * Whether resources are filtered to replace tokens | |
157 | * with parameterised values or not. | |
158 | * The values are taken from the | |
159 | * <code>properties</code> element and from the | |
160 | * properties in the files listed in the | |
161 | * <code>filters</code> element. | |
162 | * | |
163 | * | |
164 | * | |
165 | * @param filtering | |
166 | */ | |
167 | public void setFiltering( boolean filtering ) | |
168 | { | |
169 | 0 | this.filtering = filtering; |
170 | 0 | } //-- void setFiltering( boolean ) |
171 | ||
172 | /** | |
173 | * Set | |
174 | * | |
175 | * FOR INTERNAL USE ONLY. This is a unique | |
176 | * identifier assigned to each | |
177 | * resource to allow Maven to merge changes to this | |
178 | * resource that take | |
179 | * place during the execution of a plugin. This | |
180 | * field must be managed | |
181 | * by the generated parser and formatter classes in | |
182 | * order to allow it | |
183 | * to survive model interpolation. | |
184 | * | |
185 | * | |
186 | * | |
187 | * @param mergeId | |
188 | */ | |
189 | public void setMergeId( String mergeId ) | |
190 | { | |
191 | 0 | this.mergeId = mergeId; |
192 | 0 | } //-- void setMergeId( String ) |
193 | ||
194 | /** | |
195 | * Set | |
196 | * | |
197 | * Describe the resource target path. The path is | |
198 | * relative to the target/classes | |
199 | * directory (i.e. | |
200 | * <code>${project.build.outputDirectory}</code>). | |
201 | * For example, if you want that resource to appear | |
202 | * in a specific package | |
203 | * (<code>org.apache.maven.messages</code>), you | |
204 | * must specify this | |
205 | * element with this value: | |
206 | * <code>org/apache/maven/messages</code>. | |
207 | * This is not required if you simply put the | |
208 | * resources in that directory | |
209 | * structure at the source, however. | |
210 | * | |
211 | * | |
212 | * | |
213 | * @param targetPath | |
214 | */ | |
215 | public void setTargetPath( String targetPath ) | |
216 | { | |
217 | 0 | this.targetPath = targetPath; |
218 | 0 | } //-- void setTargetPath( String ) |
219 | ||
220 | ||
221 | ||
222 | 0 | private static int mergeIdCounter = 0; |
223 | ||
224 | public void initMergeId() | |
225 | { | |
226 | 0 | if ( getMergeId() == null ) |
227 | { | |
228 | 0 | setMergeId( "resource-" + (mergeIdCounter++) ); |
229 | } | |
230 | 0 | } |
231 | ||
232 | /** | |
233 | * @see java.lang.Object#toString() | |
234 | */ | |
235 | public String toString() | |
236 | { | |
237 | 0 | return "Resource {targetPath: " + getTargetPath() + ", filtering: " + isFiltering() + ", " + super.toString() + "}"; |
238 | } | |
239 | ||
240 | ||
241 | 0 | private String modelEncoding = "UTF-8"; |
242 | ||
243 | /** | |
244 | * Set an encoding used for reading/writing the model. | |
245 | * | |
246 | * @param modelEncoding the encoding used when reading/writing the model. | |
247 | */ | |
248 | public void setModelEncoding( String modelEncoding ) | |
249 | { | |
250 | 0 | this.modelEncoding = modelEncoding; |
251 | 0 | } |
252 | ||
253 | /** | |
254 | * @return the current encoding used when reading/writing this model. | |
255 | */ | |
256 | public String getModelEncoding() | |
257 | { | |
258 | 0 | return modelEncoding; |
259 | } | |
260 | } |