001 // =================== DO NOT EDIT THIS FILE ====================
002 // Generated by Modello 1.7,
003 // any modifications will be overwritten.
004 // ==============================================================
005
006 package org.apache.maven.model;
007
008 /**
009 * This element describes all of the classpath resources associated
010 * with a project
011 * or unit tests.
012 *
013 * @version $Revision$ $Date$
014 */
015 @SuppressWarnings( "all" )
016 public class Resource
017 extends FileSet
018 implements java.io.Serializable, java.lang.Cloneable
019 {
020
021 //--------------------------/
022 //- Class/Member Variables -/
023 //--------------------------/
024
025 /**
026 *
027 *
028 * Describe the resource target path. The path is
029 * relative to the target/classes
030 * directory (i.e.
031 * <code>${project.build.outputDirectory}</code>).
032 * For example, if you want that resource to appear
033 * in a specific package
034 * (<code>org.apache.maven.messages</code>), you
035 * must specify this
036 * element with this value:
037 * <code>org/apache/maven/messages</code>.
038 * This is not required if you simply put the
039 * resources in that directory
040 * structure at the source, however.
041 *
042 *
043 */
044 private String targetPath;
045
046 /**
047 *
048 *
049 * Whether resources are filtered to replace tokens
050 * with parameterised values or not.
051 * The values are taken from the
052 * <code>properties</code> element and from the
053 * properties in the files listed in the
054 * <code>filters</code> element. Note: While the type
055 * of this field is <code>String</code> for
056 * technical reasons, the semantic type is actually
057 * <code>Boolean</code>. Default value is
058 * <code>false</code>.
059 *
060 *
061 */
062 private String filtering;
063
064 /**
065 *
066 *
067 * FOR INTERNAL USE ONLY. This is a unique
068 * identifier assigned to each
069 * resource to allow Maven to merge changes to this
070 * resource that take
071 * place during the execution of a plugin. This
072 * field must be managed
073 * by the generated parser and formatter classes in
074 * order to allow it
075 * to survive model interpolation.
076 *
077 *
078 */
079 private String mergeId;
080
081
082 //-----------/
083 //- Methods -/
084 //-----------/
085
086 /**
087 * Method clone.
088 *
089 * @return Resource
090 */
091 public Resource clone()
092 {
093 try
094 {
095 Resource copy = (Resource) super.clone();
096
097 return copy;
098 }
099 catch ( java.lang.Exception ex )
100 {
101 throw (java.lang.RuntimeException) new java.lang.UnsupportedOperationException( getClass().getName()
102 + " does not support clone()" ).initCause( ex );
103 }
104 } //-- Resource clone()
105
106 /**
107 * Get whether resources are filtered to replace tokens with
108 * parameterised values or not.
109 * The values are taken from the
110 * <code>properties</code> element and from the
111 * properties in the files listed in the
112 * <code>filters</code> element. Note: While the type
113 * of this field is <code>String</code> for
114 * technical reasons, the semantic type is actually
115 * <code>Boolean</code>. Default value is
116 * <code>false</code>.
117 *
118 * @return String
119 */
120 public String getFiltering()
121 {
122 return this.filtering;
123 } //-- String getFiltering()
124
125 /**
126 * Get fOR INTERNAL USE ONLY. This is a unique identifier
127 * assigned to each
128 * resource to allow Maven to merge changes to this
129 * resource that take
130 * place during the execution of a plugin. This
131 * field must be managed
132 * by the generated parser and formatter classes in
133 * order to allow it
134 * to survive model interpolation.
135 *
136 * @return String
137 */
138 public String getMergeId()
139 {
140 return this.mergeId;
141 } //-- String getMergeId()
142
143 /**
144 * Get describe the resource target path. The path is relative
145 * to the target/classes
146 * directory (i.e.
147 * <code>${project.build.outputDirectory}</code>).
148 * For example, if you want that resource to appear
149 * in a specific package
150 * (<code>org.apache.maven.messages</code>), you
151 * must specify this
152 * element with this value:
153 * <code>org/apache/maven/messages</code>.
154 * This is not required if you simply put the
155 * resources in that directory
156 * structure at the source, however.
157 *
158 * @return String
159 */
160 public String getTargetPath()
161 {
162 return this.targetPath;
163 } //-- String getTargetPath()
164
165 /**
166 * Set whether resources are filtered to replace tokens with
167 * parameterised values or not.
168 * The values are taken from the
169 * <code>properties</code> element and from the
170 * properties in the files listed in the
171 * <code>filters</code> element. Note: While the type
172 * of this field is <code>String</code> for
173 * technical reasons, the semantic type is actually
174 * <code>Boolean</code>. Default value is
175 * <code>false</code>.
176 *
177 * @param filtering
178 */
179 public void setFiltering( String filtering )
180 {
181 this.filtering = filtering;
182 } //-- void setFiltering( String )
183
184 /**
185 * Set fOR INTERNAL USE ONLY. This is a unique identifier
186 * assigned to each
187 * resource to allow Maven to merge changes to this
188 * resource that take
189 * place during the execution of a plugin. This
190 * field must be managed
191 * by the generated parser and formatter classes in
192 * order to allow it
193 * to survive model interpolation.
194 *
195 * @param mergeId
196 */
197 public void setMergeId( String mergeId )
198 {
199 this.mergeId = mergeId;
200 } //-- void setMergeId( String )
201
202 /**
203 * Set describe the resource target path. The path is relative
204 * to the target/classes
205 * directory (i.e.
206 * <code>${project.build.outputDirectory}</code>).
207 * For example, if you want that resource to appear
208 * in a specific package
209 * (<code>org.apache.maven.messages</code>), you
210 * must specify this
211 * element with this value:
212 * <code>org/apache/maven/messages</code>.
213 * This is not required if you simply put the
214 * resources in that directory
215 * structure at the source, however.
216 *
217 * @param targetPath
218 */
219 public void setTargetPath( String targetPath )
220 {
221 this.targetPath = targetPath;
222 } //-- void setTargetPath( String )
223
224
225
226 private static int mergeIdCounter = 0;
227
228 public void initMergeId()
229 {
230 if ( getMergeId() == null )
231 {
232 setMergeId( "resource-" + (mergeIdCounter++) );
233 }
234 }
235
236 public boolean isFiltering()
237 {
238 return ( filtering != null ) ? Boolean.parseBoolean( filtering ) : false;
239 }
240
241 public void setFiltering( boolean filtering )
242 {
243 this.filtering = String.valueOf( filtering );
244 }
245
246 /**
247 * @see java.lang.Object#toString()
248 */
249 public String toString()
250 {
251 return "Resource {targetPath: " + getTargetPath() + ", filtering: " + isFiltering() + ", " + super.toString() + "}";
252 }
253
254
255 }