1 49 50 package org.apache.avalon.meta.info.builder.tags; 51 52 import java.util.ArrayList ; 53 54 import org.apache.avalon.meta.info.StageDescriptor; 55 56 import com.thoughtworks.qdox.model.DocletTag; 57 import com.thoughtworks.qdox.model.JavaClass; 58 59 65 public class StageTag extends AbstractTag 66 { 67 70 public static final String KEY = "stage"; 71 72 75 public static final String TYPE_PARAM = "type"; 76 77 80 public static final String LEGACY_URN_PARAM = "urn"; 81 82 85 public static final String ID_PARAM = "id"; 86 87 91 public StageTag( final JavaClass clazz ) 92 { 93 super( clazz ); 94 } 95 96 102 public StageDescriptor[] getStages() 103 { 104 final ArrayList list = new ArrayList (); 105 final DocletTag[] tags = 106 getJavaClass().getTagsByName( getNS() + Tags.DELIMITER + KEY ); 107 for( int i = 0; i < tags.length; i++ ) 108 { 109 list.add( getStage( tags[i] ) ); 110 } 111 return (StageDescriptor[])list.toArray( new StageDescriptor[ list.size() ] ); 112 } 113 114 private StageDescriptor getStage( DocletTag tag ) 115 { 116 String value = getNamedParameter( tag, TYPE_PARAM, null ); 117 if( value != null ) 118 { 119 final String type = resolveType( value ); 120 return new StageDescriptor( type ); 121 } 122 else 123 { 124 value = getNamedParameter( tag, LEGACY_URN_PARAM, null ); 125 if( value == null ) 126 { 127 value = getNamedParameter( tag, ID_PARAM ); 128 } 129 return new StageDescriptor( value ); 130 } 131 } 132 } 133 | Popular Tags |