1 49 50 package org.apache.avalon.meta.info.builder.tags; 51 52 import java.util.Properties ; 53 54 import org.apache.avalon.framework.Version; 55 import org.apache.avalon.meta.info.ContextDescriptor; 56 import org.apache.avalon.meta.info.DependencyDescriptor; 57 import org.apache.avalon.meta.info.ExtensionDescriptor; 58 import org.apache.avalon.meta.info.InfoDescriptor; 59 import org.apache.avalon.meta.info.CategoryDescriptor; 60 import org.apache.avalon.meta.info.ServiceDescriptor; 61 import org.apache.avalon.meta.info.StageDescriptor; 62 import org.apache.avalon.meta.info.Type; 63 64 import com.thoughtworks.qdox.model.DocletTag; 65 import com.thoughtworks.qdox.model.JavaClass; 66 67 94 public class TypeTag extends AbstractTag 95 { 96 99 public static final String KEY = "component"; 100 101 104 public static final String NAME_PARAM = "name"; 105 106 109 public static final String VERSION_PARAM = "version"; 110 111 114 public static final String LIFESTYLE_PARAM = "lifestyle"; 115 116 120 public TypeTag( final JavaClass clazz ) 121 { 122 super( clazz ); 123 } 124 125 130 public Type getType() 131 { 132 DocletTag tag = getJavaClass().getTagByName( getNS() + Tags.DELIMITER + KEY ); 133 if( null == tag ) 134 { 135 return null; 136 } 137 138 final String name = getName( tag ); 139 final Version version = getVersion( tag ); 140 final String lifestyle = getLifestyle( tag ); 141 final String type = getJavaClass().getFullyQualifiedName(); 142 final Properties properties = new AttributeTag( getJavaClass() ).getProperties(); 143 final String schema = new SchemaTag( getJavaClass() ).getConfigurationSchema(); 144 final InfoDescriptor info = new InfoDescriptor( name, type, version, lifestyle, schema, properties ); 145 final ServiceDescriptor[] services = new ServicesTag( getJavaClass() ).getServices(); 146 final CategoryDescriptor[] loggers = new LoggerTag( getJavaClass() ).getCategories(); 147 final DependencyDescriptor[] dependencies = 148 new DependencyTag( getJavaClass() ).getDependencies(); 149 final StageDescriptor[] stages = new StageTag( getJavaClass() ).getStages(); 150 final ExtensionDescriptor[] extensions = new ExtensionTag( getJavaClass() ).getExtensions(); 151 final ContextDescriptor context = new ContextTag( getJavaClass() ).getContext(); 152 153 return new Type( info, loggers, context, services, dependencies, stages, extensions, null ); 154 } 155 156 private String getName(DocletTag tag) 157 { 158 return getNamedParameter( tag, NAME_PARAM ); 159 } 160 161 private String getLifestyle(DocletTag tag) 162 { 163 return getNamedParameter( tag, LIFESTYLE_PARAM, null ); 164 } 165 166 private Version getVersion(DocletTag tag) 167 { 168 return Version.getVersion( getNamedParameter( tag, VERSION_PARAM, "" ) ); 169 } 170 } 171 | Popular Tags |