View Javadoc
1   package org.codehaus.plexus.metadata.merge.support;
2   
3   /**
4    * All allowable tags in <code>components.xml</code> and their bindings to
5    * {@link org.codehaus.plexus.metadata.merge.support.Mergeable} counterparts (if required).
6    * <p/>
7    * <em>This implementation may change.</em> <br>
8    * TODO Might be an idea factor and set up the list of allowed tags here itself.
9    *
10   * @author <a href='mailto:rahul.thakur.xdev@gmail.com'>Rahul Thakur</a>
11   * @version $Id$
12   */
13  public class PlexusXmlTag
14      extends DescriptorTag
15  {
16      public static final PlexusXmlTag COMPONENT_SET = new PlexusXmlTag( "component-set",
17                                                                                                               false, ComponentSetElement.class );
18  
19      public static final PlexusXmlTag COMPONENTS = new PlexusXmlTag( "components",
20                                                                                                            true, ComponentsElement.class );
21  
22      public static final PlexusXmlTag COMPONENT = new PlexusXmlTag( "component", true, ComponentElement.class );
23  
24      public static final PlexusXmlTag ROLE = new PlexusXmlTag( "role" );
25  
26      public static final PlexusXmlTag ROLE_HINT = new PlexusXmlTag( "role-hint" );
27  
28      public static final PlexusXmlTag FIELD_NAME = new PlexusXmlTag( "field-name" );
29  
30      public static final PlexusXmlTag IMPLEMENTATION = new PlexusXmlTag( "implementation" );
31  
32      public static final PlexusXmlTag LIFECYCLE_HANDLER = new PlexusXmlTag( "lifecycle-handler", false, null );
33  
34      public static final PlexusXmlTag REQUIREMENTS =
35          new PlexusXmlTag( "requirements", true, RequirementsElement.class );
36  
37      public static final PlexusXmlTag CONFIGURATION =
38          new PlexusXmlTag( "configuration", true, ConfigurationElement.class );
39  
40      public static final PlexusXmlTag REQUIREMENT =
41          new PlexusXmlTag( "requirement", true, RequirementElement.class );
42  
43      /**
44       * @param tagName
45       * @param isMultipleAllowed
46       * @param mergeableClass Class that wraps this tag (as JDom element) and provides for merging same tags.
47       */
48      private PlexusXmlTag( String tagName, boolean isMultipleAllowed, Class mergeableClass )
49      {
50          super( tagName, isMultipleAllowed, mergeableClass );
51      }
52  
53      /**
54       * By default we don't allow multiples of same tag names.
55       *
56       * @param tagName
57       */
58      private PlexusXmlTag( String tagName )
59      {
60          super( tagName, false, null );
61      }
62  }