1 // =================== DO NOT EDIT THIS FILE ==================== 2 // Generated by Modello 2.1.2, 3 // any modifications will be overwritten. 4 // ============================================================== 5 6 package org.apache.maven.model; 7 8 /** 9 * 10 * 11 * The <code><parent></code> element contains 12 * information required to locate the parent project from which 13 * this project will inherit from. 14 * <strong>Note:</strong> The children of this element are 15 * not interpolated and must be given as literal values. 16 * 17 * 18 * 19 * @version $Revision$ $Date$ 20 */ 21 @SuppressWarnings( "all" ) 22 public class Parent 23 implements java.io.Serializable, java.lang.Cloneable, org.apache.maven.model.InputLocationTracker 24 { 25 26 //--------------------------/ 27 //- Class/Member Variables -/ 28 //--------------------------/ 29 30 /** 31 * The group id of the parent project to inherit from. 32 */ 33 private String groupId; 34 35 /** 36 * The artifact id of the parent project to inherit from. 37 */ 38 private String artifactId; 39 40 /** 41 * The version of the parent project to inherit. 42 */ 43 private String version; 44 45 /** 46 * 47 * 48 * The relative path of the parent 49 * <code>pom.xml</code> file within the check out. 50 * If not specified, it defaults to 51 * <code>../pom.xml</code>. 52 * Maven looks for the parent POM first in this 53 * location on 54 * the filesystem, then the local repository, and 55 * lastly in the remote repo. 56 * <code>relativePath</code> allows you to select a 57 * different location, 58 * for example when your structure is flat, or 59 * deeper without an intermediate parent POM. 60 * However, the group ID, artifact ID and version 61 * are still required, 62 * and must match the file in the location given or 63 * it will revert to the repository for the POM. 64 * This feature is only for enhancing the 65 * development in a local checkout of that project. 66 * Set the value to an empty string in case you 67 * want to disable the feature and always resolve 68 * the parent POM from the repositories. 69 * 70 * 71 */ 72 private String relativePath = "../pom.xml"; 73 74 /** 75 * Field locations. 76 */ 77 private java.util.Map<Object, InputLocation> locations; 78 79 /** 80 * Field location. 81 */ 82 private InputLocation location; 83 84 /** 85 * Field groupIdLocation. 86 */ 87 private InputLocation groupIdLocation; 88 89 /** 90 * Field artifactIdLocation. 91 */ 92 private InputLocation artifactIdLocation; 93 94 /** 95 * Field versionLocation. 96 */ 97 private InputLocation versionLocation; 98 99 /** 100 * Field relativePathLocation. 101 */ 102 private InputLocation relativePathLocation; 103 104 105 //-----------/ 106 //- Methods -/ 107 //-----------/ 108 109 /** 110 * Method clone. 111 * 112 * @return Parent 113 */ 114 public Parent clone() 115 { 116 try 117 { 118 Parent copy = (Parent) super.clone(); 119 120 if ( copy.locations != null ) 121 { 122 copy.locations = new java.util.LinkedHashMap( copy.locations ); 123 } 124 125 return copy; 126 } 127 catch ( java.lang.Exception ex ) 128 { 129 throw (java.lang.RuntimeException) new java.lang.UnsupportedOperationException( getClass().getName() 130 + " does not support clone()" ).initCause( ex ); 131 } 132 } //-- Parent clone() 133 134 /** 135 * Get the artifact id of the parent project to inherit from. 136 * 137 * @return String 138 */ 139 public String getArtifactId() 140 { 141 return this.artifactId; 142 } //-- String getArtifactId() 143 144 /** 145 * Get the group id of the parent project to inherit from. 146 * 147 * @return String 148 */ 149 public String getGroupId() 150 { 151 return this.groupId; 152 } //-- String getGroupId() 153 154 /** 155 * 156 * 157 * @param key a key object. 158 * @return InputLocation 159 */ 160 public InputLocation getLocation( Object key ) 161 { 162 if ( key instanceof String ) 163 { 164 switch ( ( String ) key ) 165 { 166 case "" : 167 { 168 return this.location; 169 } 170 case "groupId" : 171 { 172 return groupIdLocation; 173 } 174 case "artifactId" : 175 { 176 return artifactIdLocation; 177 } 178 case "version" : 179 { 180 return versionLocation; 181 } 182 case "relativePath" : 183 { 184 return relativePathLocation; 185 } 186 default : 187 { 188 return getOtherLocation( key ); 189 } 190 } 191 } 192 else 193 { 194 return getOtherLocation( key ); 195 } 196 } //-- InputLocation getLocation( Object ) 197 198 /** 199 * 200 * 201 * @param key a key object. 202 * @param location a location object. 203 */ 204 public void setLocation( Object key, InputLocation location ) 205 { 206 if ( key instanceof String ) 207 { 208 switch ( ( String ) key ) 209 { 210 case "" : 211 { 212 this.location = location; 213 return; 214 } 215 case "groupId" : 216 { 217 groupIdLocation = location; 218 return; 219 } 220 case "artifactId" : 221 { 222 artifactIdLocation = location; 223 return; 224 } 225 case "version" : 226 { 227 versionLocation = location; 228 return; 229 } 230 case "relativePath" : 231 { 232 relativePathLocation = location; 233 return; 234 } 235 default : 236 { 237 setOtherLocation( key, location ); 238 return; 239 } 240 } 241 } 242 else 243 { 244 setOtherLocation( key, location ); 245 } 246 } //-- void setLocation( Object, InputLocation ) 247 248 /** 249 * 250 * 251 * @param key a key object. 252 * @param location a location object. 253 */ 254 public void setOtherLocation( Object key, InputLocation location ) 255 { 256 if ( location != null ) 257 { 258 if ( this.locations == null ) 259 { 260 this.locations = new java.util.LinkedHashMap<Object, InputLocation>(); 261 } 262 this.locations.put( key, location ); 263 } 264 } //-- void setOtherLocation( Object, InputLocation ) 265 266 /** 267 * 268 * 269 * @param key a key object. 270 * @return InputLocation 271 */ 272 private InputLocation getOtherLocation( Object key ) 273 { 274 return ( locations != null ) ? locations.get( key ) : null; 275 } //-- InputLocation getOtherLocation( Object ) 276 277 /** 278 * Get the relative path of the parent <code>pom.xml</code> 279 * file within the check out. 280 * If not specified, it defaults to 281 * <code>../pom.xml</code>. 282 * Maven looks for the parent POM first in this 283 * location on 284 * the filesystem, then the local repository, and 285 * lastly in the remote repo. 286 * <code>relativePath</code> allows you to select a 287 * different location, 288 * for example when your structure is flat, or 289 * deeper without an intermediate parent POM. 290 * However, the group ID, artifact ID and version 291 * are still required, 292 * and must match the file in the location given or 293 * it will revert to the repository for the POM. 294 * This feature is only for enhancing the 295 * development in a local checkout of that project. 296 * Set the value to an empty string in case you 297 * want to disable the feature and always resolve 298 * the parent POM from the repositories. 299 * 300 * @return String 301 */ 302 public String getRelativePath() 303 { 304 return this.relativePath; 305 } //-- String getRelativePath() 306 307 /** 308 * Get the version of the parent project to inherit. 309 * 310 * @return String 311 */ 312 public String getVersion() 313 { 314 return this.version; 315 } //-- String getVersion() 316 317 /** 318 * Set the artifact id of the parent project to inherit from. 319 * 320 * @param artifactId a artifactId object. 321 */ 322 public void setArtifactId( String artifactId ) 323 { 324 this.artifactId = artifactId; 325 } //-- void setArtifactId( String ) 326 327 /** 328 * Set the group id of the parent project to inherit from. 329 * 330 * @param groupId a groupId object. 331 */ 332 public void setGroupId( String groupId ) 333 { 334 this.groupId = groupId; 335 } //-- void setGroupId( String ) 336 337 /** 338 * Set the relative path of the parent <code>pom.xml</code> 339 * file within the check out. 340 * If not specified, it defaults to 341 * <code>../pom.xml</code>. 342 * Maven looks for the parent POM first in this 343 * location on 344 * the filesystem, then the local repository, and 345 * lastly in the remote repo. 346 * <code>relativePath</code> allows you to select a 347 * different location, 348 * for example when your structure is flat, or 349 * deeper without an intermediate parent POM. 350 * However, the group ID, artifact ID and version 351 * are still required, 352 * and must match the file in the location given or 353 * it will revert to the repository for the POM. 354 * This feature is only for enhancing the 355 * development in a local checkout of that project. 356 * Set the value to an empty string in case you 357 * want to disable the feature and always resolve 358 * the parent POM from the repositories. 359 * 360 * @param relativePath a relativePath object. 361 */ 362 public void setRelativePath( String relativePath ) 363 { 364 this.relativePath = relativePath; 365 } //-- void setRelativePath( String ) 366 367 /** 368 * Set the version of the parent project to inherit. 369 * 370 * @param version a version object. 371 */ 372 public void setVersion( String version ) 373 { 374 this.version = version; 375 } //-- void setVersion( String ) 376 377 378 379 /** 380 * @return the id as <code>groupId:artifactId:version</code> 381 */ 382 public String getId() 383 { 384 StringBuilder id = new StringBuilder( 64 ); 385 386 id.append( getGroupId() ); 387 id.append( ":" ); 388 id.append( getArtifactId() ); 389 id.append( ":" ); 390 id.append( "pom" ); 391 id.append( ":" ); 392 id.append( getVersion() ); 393 394 return id.toString(); 395 } 396 397 @Override 398 public String toString() 399 { 400 return getId(); 401 } 402 403 404 }