001 /*
002 =================== DO NOT EDIT THIS FILE ====================
003 Generated by Modello 1.4.1 on 2012-01-20 18:05:12,
004 any modifications will be overwritten.
005 ==============================================================
006 */
007
008 package org.apache.maven.plugin.descriptor.model;
009
010 /**
011 *
012 * A Mojo description.
013 *
014 *
015 * @version $Revision$ $Date$
016 */
017 @SuppressWarnings( "all" )
018 public class MojoDescriptor
019 implements java.io.Serializable
020 {
021
022 //--------------------------/
023 //- Class/Member Variables -/
024 //--------------------------/
025
026 /**
027 *
028 * The name for the Mojo that users will reference
029 * from the command line to execute the Mojo directly,
030 * or inside a POM in order to provide
031 * Mojo-specific configuration.
032 *
033 */
034 private String goal;
035
036 /**
037 * The description of this Mojo's functionality.
038 */
039 private String description;
040
041 /**
042 *
043 * The Mojo's fully-qualified class name (or script
044 * path in the case of non-Java Mojos).
045 *
046 */
047 private String implementation;
048
049 /**
050 * The implementation language for this Mojo (Java, beanshell,
051 * etc.).
052 */
053 private String language = "java";
054
055 /**
056 *
057 * Defines a default phase to bind a mojo execution
058 * to if the user does not explicitly set a phase in the POM.
059 * <i>Note:</i> This annotation will not
060 * automagically make a mojo run when the plugin declaration is
061 * added
062 * to the POM. It merely enables the user to omit
063 * the <code><phase></code> element from the
064 * surrounding <code><execution></code>
065 * element.
066 *
067 */
068 private String phase;
069
070 /**
071 * Field executePhase.
072 */
073 private String executePhase;
074
075 /**
076 * Field executeGoal.
077 */
078 private String executeGoal;
079
080 /**
081 * Field executeLifecycle.
082 */
083 private String executeLifecycle;
084
085 /**
086 *
087 * Flags this Mojo as requiring the dependencies in
088 * the specified class path to be resolved before it can
089 * execute: <code>compile</code>,
090 * <code>runtime</code>, <code>test</code>,
091 * <code>compile+runtime</code> (since Maven 3.0)
092 * .
093 */
094 private String requiresDependencyResolution = "runtime";
095
096 /**
097 *
098 * Flags this mojo as requiring information about
099 * the dependencies that would make up the specified class
100 * path. As the name suggests, this is similar to
101 * requiresDependencyResolution and supports the same values.
102 * The important difference is this will not
103 * resolve the files for the dependencies, i.e. the artifacts
104 * associated with a Maven project can lack a file.
105 * As such, this annotation is meant for mojos that only
106 * want to analyze the set of transitive
107 * dependencies, in particular during early lifecycle phases
108 * where
109 * full dependency resolution might fail due to
110 * projects which haven't been built yet.
111 *
112 */
113 private String requiresDependencyCollection;
114
115 /**
116 * Flags this Mojo to be invoked directly.
117 */
118 private boolean requiresDirectInvocation = false;
119
120 /**
121 * Flags this Mojo to run inside of a project.
122 */
123 private boolean requiresProject = true;
124
125 /**
126 * Flags this Mojo to require reports. Unsupported since Maven
127 * 3.0.
128 */
129 private boolean requiresReports = false;
130
131 /**
132 * Flags this Mojo to require online mode for its operation.
133 */
134 private boolean requiresOnline = false;
135
136 /**
137 *
138 * Flags this Mojo to run it in a multi module way,
139 * i.e. aggregate the build with the set of projects
140 * listed as modules.
141 *
142 */
143 private boolean aggregator = false;
144
145 /**
146 * Specify that the Mojo is inherited.
147 */
148 private boolean inheritedByDefault = true;
149
150 /**
151 *
152 * Marks this mojo as being thread-safe, i.e. the
153 * mojo safely supports concurrent execution during parallel
154 * builds. Mojos without this annotation will make
155 * Maven output a warning when used during a parallel build
156 * session. Since Maven 3.0.
157 *
158 */
159 private boolean threadSafe = false;
160
161 /**
162 * Specify the instantiation strategy.
163 */
164 private String instantiationStrategy = "per-lookup";
165
166 /**
167 *
168 * Specify the execution strategy:
169 * <code>once-per-session</code>, <code>always</code>.
170 *
171 */
172 private String executionStrategy;
173
174 /**
175 * Specify the version when the Mojo was added to the API.
176 * Similar to Javadoc since.
177 */
178 private String since;
179
180 /**
181 *
182 * Specify the version when the Mojo was deprecated
183 * to the API. Similar to Javadoc deprecated. This will
184 * trigger a warning when a user tries to configure
185 * a parameter marked as deprecated.
186 *
187 */
188 private String deprecated;
189
190 /**
191 *
192 * The configurator type to use when injecting
193 * parameter values into this Mojo. The value is normally
194 * deduced
195 * from the Mojo's implementation language, but can
196 * be specified to allow a custom ComponentConfigurator
197 * implementation to be used.
198 *
199 */
200 private String configurator;
201
202 /**
203 * Field composer.
204 */
205 private String composer;
206
207 /**
208 * Field parameters.
209 */
210 private java.util.List<Parameter> parameters;
211
212 /**
213 * Field configuration.
214 */
215 private java.util.List<Configuration> configuration;
216
217 /**
218 * Field requirements.
219 */
220 private java.util.List<Requirement> requirements;
221
222
223 //-----------/
224 //- Methods -/
225 //-----------/
226
227 /**
228 * Method addConfiguration.
229 *
230 * @param configuration
231 */
232 public void addConfiguration( Configuration configuration )
233 {
234 getConfiguration().add( configuration );
235 } //-- void addConfiguration( Configuration )
236
237 /**
238 * Method addParameter.
239 *
240 * @param parameter
241 */
242 public void addParameter( Parameter parameter )
243 {
244 getParameters().add( parameter );
245 } //-- void addParameter( Parameter )
246
247 /**
248 * Method addRequirement.
249 *
250 * @param requirement
251 */
252 public void addRequirement( Requirement requirement )
253 {
254 getRequirements().add( requirement );
255 } //-- void addRequirement( Requirement )
256
257 /**
258 * Get the composer field.
259 *
260 * @return String
261 */
262 public String getComposer()
263 {
264 return this.composer;
265 } //-- String getComposer()
266
267 /**
268 * Method getConfiguration.
269 *
270 * @return List
271 */
272 public java.util.List<Configuration> getConfiguration()
273 {
274 if ( this.configuration == null )
275 {
276 this.configuration = new java.util.ArrayList<Configuration>();
277 }
278
279 return this.configuration;
280 } //-- java.util.List<Configuration> getConfiguration()
281
282 /**
283 * Get the configurator type to use when injecting parameter
284 * values into this Mojo. The value is normally deduced
285 * from the Mojo's implementation language, but can
286 * be specified to allow a custom ComponentConfigurator
287 * implementation to be used.
288 *
289 * @return String
290 */
291 public String getConfigurator()
292 {
293 return this.configurator;
294 } //-- String getConfigurator()
295
296 /**
297 * Get specify the version when the Mojo was deprecated to the
298 * API. Similar to Javadoc deprecated. This will
299 * trigger a warning when a user tries to configure
300 * a parameter marked as deprecated.
301 *
302 * @return String
303 */
304 public String getDeprecated()
305 {
306 return this.deprecated;
307 } //-- String getDeprecated()
308
309 /**
310 * Get the description of this Mojo's functionality.
311 *
312 * @return String
313 */
314 public String getDescription()
315 {
316 return this.description;
317 } //-- String getDescription()
318
319 /**
320 * Get the executeGoal field.
321 *
322 * @return String
323 */
324 public String getExecuteGoal()
325 {
326 return this.executeGoal;
327 } //-- String getExecuteGoal()
328
329 /**
330 * Get the executeLifecycle field.
331 *
332 * @return String
333 */
334 public String getExecuteLifecycle()
335 {
336 return this.executeLifecycle;
337 } //-- String getExecuteLifecycle()
338
339 /**
340 * Get the executePhase field.
341 *
342 * @return String
343 */
344 public String getExecutePhase()
345 {
346 return this.executePhase;
347 } //-- String getExecutePhase()
348
349 /**
350 * Get specify the execution strategy:
351 * <code>once-per-session</code>, <code>always</code>.
352 *
353 * @return String
354 */
355 public String getExecutionStrategy()
356 {
357 return this.executionStrategy;
358 } //-- String getExecutionStrategy()
359
360 /**
361 * Get the name for the Mojo that users will reference from the
362 * command line to execute the Mojo directly,
363 * or inside a POM in order to provide
364 * Mojo-specific configuration.
365 *
366 * @return String
367 */
368 public String getGoal()
369 {
370 return this.goal;
371 } //-- String getGoal()
372
373 /**
374 * Get the Mojo's fully-qualified class name (or script path in
375 * the case of non-Java Mojos).
376 *
377 * @return String
378 */
379 public String getImplementation()
380 {
381 return this.implementation;
382 } //-- String getImplementation()
383
384 /**
385 * Get specify the instantiation strategy.
386 *
387 * @return String
388 */
389 public String getInstantiationStrategy()
390 {
391 return this.instantiationStrategy;
392 } //-- String getInstantiationStrategy()
393
394 /**
395 * Get the implementation language for this Mojo (Java,
396 * beanshell, etc.).
397 *
398 * @return String
399 */
400 public String getLanguage()
401 {
402 return this.language;
403 } //-- String getLanguage()
404
405 /**
406 * Method getParameters.
407 *
408 * @return List
409 */
410 public java.util.List<Parameter> getParameters()
411 {
412 if ( this.parameters == null )
413 {
414 this.parameters = new java.util.ArrayList<Parameter>();
415 }
416
417 return this.parameters;
418 } //-- java.util.List<Parameter> getParameters()
419
420 /**
421 * Get defines a default phase to bind a mojo execution to if
422 * the user does not explicitly set a phase in the POM.
423 * <i>Note:</i> This annotation will not
424 * automagically make a mojo run when the plugin declaration is
425 * added
426 * to the POM. It merely enables the user to omit
427 * the <code><phase></code> element from the
428 * surrounding <code><execution></code>
429 * element.
430 *
431 * @return String
432 */
433 public String getPhase()
434 {
435 return this.phase;
436 } //-- String getPhase()
437
438 /**
439 * Method getRequirements.
440 *
441 * @return List
442 */
443 public java.util.List<Requirement> getRequirements()
444 {
445 if ( this.requirements == null )
446 {
447 this.requirements = new java.util.ArrayList<Requirement>();
448 }
449
450 return this.requirements;
451 } //-- java.util.List<Requirement> getRequirements()
452
453 /**
454 * Get flags this mojo as requiring information about the
455 * dependencies that would make up the specified class
456 * path. As the name suggests, this is similar to
457 * requiresDependencyResolution and supports the same values.
458 * The important difference is this will not
459 * resolve the files for the dependencies, i.e. the artifacts
460 * associated with a Maven project can lack a file.
461 * As such, this annotation is meant for mojos that only
462 * want to analyze the set of transitive
463 * dependencies, in particular during early lifecycle phases
464 * where
465 * full dependency resolution might fail due to
466 * projects which haven't been built yet.
467 *
468 * @return String
469 */
470 public String getRequiresDependencyCollection()
471 {
472 return this.requiresDependencyCollection;
473 } //-- String getRequiresDependencyCollection()
474
475 /**
476 * Get flags this Mojo as requiring the dependencies in the
477 * specified class path to be resolved before it can
478 * execute: <code>compile</code>,
479 * <code>runtime</code>, <code>test</code>,
480 * <code>compile+runtime</code> (since Maven 3.0).
481 *
482 * @return String
483 */
484 public String getRequiresDependencyResolution()
485 {
486 return this.requiresDependencyResolution;
487 } //-- String getRequiresDependencyResolution()
488
489 /**
490 * Get specify the version when the Mojo was added to the API.
491 * Similar to Javadoc since.
492 *
493 * @return String
494 */
495 public String getSince()
496 {
497 return this.since;
498 } //-- String getSince()
499
500 /**
501 * Get flags this Mojo to run it in a multi module way, i.e.
502 * aggregate the build with the set of projects
503 * listed as modules.
504 *
505 * @return boolean
506 */
507 public boolean isAggregator()
508 {
509 return this.aggregator;
510 } //-- boolean isAggregator()
511
512 /**
513 * Get specify that the Mojo is inherited.
514 *
515 * @return boolean
516 */
517 public boolean isInheritedByDefault()
518 {
519 return this.inheritedByDefault;
520 } //-- boolean isInheritedByDefault()
521
522 /**
523 * Get flags this Mojo to be invoked directly.
524 *
525 * @return boolean
526 */
527 public boolean isRequiresDirectInvocation()
528 {
529 return this.requiresDirectInvocation;
530 } //-- boolean isRequiresDirectInvocation()
531
532 /**
533 * Get flags this Mojo to require online mode for its
534 * operation.
535 *
536 * @return boolean
537 */
538 public boolean isRequiresOnline()
539 {
540 return this.requiresOnline;
541 } //-- boolean isRequiresOnline()
542
543 /**
544 * Get flags this Mojo to run inside of a project.
545 *
546 * @return boolean
547 */
548 public boolean isRequiresProject()
549 {
550 return this.requiresProject;
551 } //-- boolean isRequiresProject()
552
553 /**
554 * Get flags this Mojo to require reports. Unsupported since
555 * Maven 3.0.
556 *
557 * @return boolean
558 */
559 public boolean isRequiresReports()
560 {
561 return this.requiresReports;
562 } //-- boolean isRequiresReports()
563
564 /**
565 * Get marks this mojo as being thread-safe, i.e. the mojo
566 * safely supports concurrent execution during parallel
567 * builds. Mojos without this annotation will make
568 * Maven output a warning when used during a parallel build
569 * session. Since Maven 3.0.
570 *
571 * @return boolean
572 */
573 public boolean isThreadSafe()
574 {
575 return this.threadSafe;
576 } //-- boolean isThreadSafe()
577
578 /**
579 * Method removeConfiguration.
580 *
581 * @param configuration
582 */
583 public void removeConfiguration( Configuration configuration )
584 {
585 getConfiguration().remove( configuration );
586 } //-- void removeConfiguration( Configuration )
587
588 /**
589 * Method removeParameter.
590 *
591 * @param parameter
592 */
593 public void removeParameter( Parameter parameter )
594 {
595 getParameters().remove( parameter );
596 } //-- void removeParameter( Parameter )
597
598 /**
599 * Method removeRequirement.
600 *
601 * @param requirement
602 */
603 public void removeRequirement( Requirement requirement )
604 {
605 getRequirements().remove( requirement );
606 } //-- void removeRequirement( Requirement )
607
608 /**
609 * Set flags this Mojo to run it in a multi module way, i.e.
610 * aggregate the build with the set of projects
611 * listed as modules.
612 *
613 * @param aggregator
614 */
615 public void setAggregator( boolean aggregator )
616 {
617 this.aggregator = aggregator;
618 } //-- void setAggregator( boolean )
619
620 /**
621 * Set the composer field.
622 *
623 * @param composer
624 */
625 public void setComposer( String composer )
626 {
627 this.composer = composer;
628 } //-- void setComposer( String )
629
630 /**
631 * Set the configuration field.
632 *
633 * @param configuration
634 */
635 public void setConfiguration( java.util.List<Configuration> configuration )
636 {
637 this.configuration = configuration;
638 } //-- void setConfiguration( java.util.List )
639
640 /**
641 * Set the configurator type to use when injecting parameter
642 * values into this Mojo. The value is normally deduced
643 * from the Mojo's implementation language, but can
644 * be specified to allow a custom ComponentConfigurator
645 * implementation to be used.
646 *
647 * @param configurator
648 */
649 public void setConfigurator( String configurator )
650 {
651 this.configurator = configurator;
652 } //-- void setConfigurator( String )
653
654 /**
655 * Set specify the version when the Mojo was deprecated to the
656 * API. Similar to Javadoc deprecated. This will
657 * trigger a warning when a user tries to configure
658 * a parameter marked as deprecated.
659 *
660 * @param deprecated
661 */
662 public void setDeprecated( String deprecated )
663 {
664 this.deprecated = deprecated;
665 } //-- void setDeprecated( String )
666
667 /**
668 * Set the description of this Mojo's functionality.
669 *
670 * @param description
671 */
672 public void setDescription( String description )
673 {
674 this.description = description;
675 } //-- void setDescription( String )
676
677 /**
678 * Set the executeGoal field.
679 *
680 * @param executeGoal
681 */
682 public void setExecuteGoal( String executeGoal )
683 {
684 this.executeGoal = executeGoal;
685 } //-- void setExecuteGoal( String )
686
687 /**
688 * Set the executeLifecycle field.
689 *
690 * @param executeLifecycle
691 */
692 public void setExecuteLifecycle( String executeLifecycle )
693 {
694 this.executeLifecycle = executeLifecycle;
695 } //-- void setExecuteLifecycle( String )
696
697 /**
698 * Set the executePhase field.
699 *
700 * @param executePhase
701 */
702 public void setExecutePhase( String executePhase )
703 {
704 this.executePhase = executePhase;
705 } //-- void setExecutePhase( String )
706
707 /**
708 * Set specify the execution strategy:
709 * <code>once-per-session</code>, <code>always</code>.
710 *
711 * @param executionStrategy
712 */
713 public void setExecutionStrategy( String executionStrategy )
714 {
715 this.executionStrategy = executionStrategy;
716 } //-- void setExecutionStrategy( String )
717
718 /**
719 * Set the name for the Mojo that users will reference from the
720 * command line to execute the Mojo directly,
721 * or inside a POM in order to provide
722 * Mojo-specific configuration.
723 *
724 * @param goal
725 */
726 public void setGoal( String goal )
727 {
728 this.goal = goal;
729 } //-- void setGoal( String )
730
731 /**
732 * Set the Mojo's fully-qualified class name (or script path in
733 * the case of non-Java Mojos).
734 *
735 * @param implementation
736 */
737 public void setImplementation( String implementation )
738 {
739 this.implementation = implementation;
740 } //-- void setImplementation( String )
741
742 /**
743 * Set specify that the Mojo is inherited.
744 *
745 * @param inheritedByDefault
746 */
747 public void setInheritedByDefault( boolean inheritedByDefault )
748 {
749 this.inheritedByDefault = inheritedByDefault;
750 } //-- void setInheritedByDefault( boolean )
751
752 /**
753 * Set specify the instantiation strategy.
754 *
755 * @param instantiationStrategy
756 */
757 public void setInstantiationStrategy( String instantiationStrategy )
758 {
759 this.instantiationStrategy = instantiationStrategy;
760 } //-- void setInstantiationStrategy( String )
761
762 /**
763 * Set the implementation language for this Mojo (Java,
764 * beanshell, etc.).
765 *
766 * @param language
767 */
768 public void setLanguage( String language )
769 {
770 this.language = language;
771 } //-- void setLanguage( String )
772
773 /**
774 * Set the parameters field.
775 *
776 * @param parameters
777 */
778 public void setParameters( java.util.List<Parameter> parameters )
779 {
780 this.parameters = parameters;
781 } //-- void setParameters( java.util.List )
782
783 /**
784 * Set defines a default phase to bind a mojo execution to if
785 * the user does not explicitly set a phase in the POM.
786 * <i>Note:</i> This annotation will not
787 * automagically make a mojo run when the plugin declaration is
788 * added
789 * to the POM. It merely enables the user to omit
790 * the <code><phase></code> element from the
791 * surrounding <code><execution></code>
792 * element.
793 *
794 * @param phase
795 */
796 public void setPhase( String phase )
797 {
798 this.phase = phase;
799 } //-- void setPhase( String )
800
801 /**
802 * Set the requirements field.
803 *
804 * @param requirements
805 */
806 public void setRequirements( java.util.List<Requirement> requirements )
807 {
808 this.requirements = requirements;
809 } //-- void setRequirements( java.util.List )
810
811 /**
812 * Set flags this mojo as requiring information about the
813 * dependencies that would make up the specified class
814 * path. As the name suggests, this is similar to
815 * requiresDependencyResolution and supports the same values.
816 * The important difference is this will not
817 * resolve the files for the dependencies, i.e. the artifacts
818 * associated with a Maven project can lack a file.
819 * As such, this annotation is meant for mojos that only
820 * want to analyze the set of transitive
821 * dependencies, in particular during early lifecycle phases
822 * where
823 * full dependency resolution might fail due to
824 * projects which haven't been built yet.
825 *
826 * @param requiresDependencyCollection
827 */
828 public void setRequiresDependencyCollection( String requiresDependencyCollection )
829 {
830 this.requiresDependencyCollection = requiresDependencyCollection;
831 } //-- void setRequiresDependencyCollection( String )
832
833 /**
834 * Set flags this Mojo as requiring the dependencies in the
835 * specified class path to be resolved before it can
836 * execute: <code>compile</code>,
837 * <code>runtime</code>, <code>test</code>,
838 * <code>compile+runtime</code> (since Maven 3.0).
839 *
840 * @param requiresDependencyResolution
841 */
842 public void setRequiresDependencyResolution( String requiresDependencyResolution )
843 {
844 this.requiresDependencyResolution = requiresDependencyResolution;
845 } //-- void setRequiresDependencyResolution( String )
846
847 /**
848 * Set flags this Mojo to be invoked directly.
849 *
850 * @param requiresDirectInvocation
851 */
852 public void setRequiresDirectInvocation( boolean requiresDirectInvocation )
853 {
854 this.requiresDirectInvocation = requiresDirectInvocation;
855 } //-- void setRequiresDirectInvocation( boolean )
856
857 /**
858 * Set flags this Mojo to require online mode for its
859 * operation.
860 *
861 * @param requiresOnline
862 */
863 public void setRequiresOnline( boolean requiresOnline )
864 {
865 this.requiresOnline = requiresOnline;
866 } //-- void setRequiresOnline( boolean )
867
868 /**
869 * Set flags this Mojo to run inside of a project.
870 *
871 * @param requiresProject
872 */
873 public void setRequiresProject( boolean requiresProject )
874 {
875 this.requiresProject = requiresProject;
876 } //-- void setRequiresProject( boolean )
877
878 /**
879 * Set flags this Mojo to require reports. Unsupported since
880 * Maven 3.0.
881 *
882 * @param requiresReports
883 */
884 public void setRequiresReports( boolean requiresReports )
885 {
886 this.requiresReports = requiresReports;
887 } //-- void setRequiresReports( boolean )
888
889 /**
890 * Set specify the version when the Mojo was added to the API.
891 * Similar to Javadoc since.
892 *
893 * @param since
894 */
895 public void setSince( String since )
896 {
897 this.since = since;
898 } //-- void setSince( String )
899
900 /**
901 * Set marks this mojo as being thread-safe, i.e. the mojo
902 * safely supports concurrent execution during parallel
903 * builds. Mojos without this annotation will make
904 * Maven output a warning when used during a parallel build
905 * session. Since Maven 3.0.
906 *
907 * @param threadSafe
908 */
909 public void setThreadSafe( boolean threadSafe )
910 {
911 this.threadSafe = threadSafe;
912 } //-- void setThreadSafe( boolean )
913
914 }