1 8 package org.codehaus.loom.components.util; 9 10 import java.util.ArrayList ; 11 import org.apache.avalon.framework.Version; 12 import org.apache.avalon.phoenix.metainfo.BlockDescriptor; 13 import org.apache.avalon.phoenix.metainfo.BlockInfo; 14 import org.apache.avalon.phoenix.metainfo.DependencyDescriptor; 15 import org.apache.avalon.phoenix.metainfo.ServiceDescriptor; 16 import org.codehaus.loom.components.util.info.ComponentInfo; 17 import org.codehaus.loom.components.util.info.SchemaDescriptor; 18 19 25 public class ComponentInfoConverter 26 { 27 private static final Version VERSION = new Version( 1, 0, 0 ); 28 29 35 public static BlockInfo toBlockInfo( final ComponentInfo component ) 36 { 37 final BlockDescriptor descriptor = toBlockDescriptor( component ); 38 final ServiceDescriptor[] services = toPhoenixServices( 39 component.getServices() ); 40 final ServiceDescriptor[] mxServices = new ServiceDescriptor[ 0 ]; 41 final DependencyDescriptor[] dependencys = 42 toPhoenixDependencys( component.getDependencies() ); 43 44 return new BlockInfo( descriptor, 45 services, 46 mxServices, 47 dependencys ); 48 } 49 50 56 private static ServiceDescriptor[] toPhoenixServices( 57 final org.codehaus.loom.components.util.info.ServiceDescriptor[] services ) 58 { 59 final ArrayList serviceSet = new ArrayList (); 60 for( int i = 0; i < services.length; i++ ) 61 { 62 serviceSet.add( toPhoenixService( services[ i ] ) ); 63 } 64 return (ServiceDescriptor[])serviceSet.toArray( 65 new ServiceDescriptor[ serviceSet.size() ] ); 66 } 67 68 74 private static ServiceDescriptor toPhoenixService( 75 final org.codehaus.loom.components.util.info.ServiceDescriptor service ) 76 { 77 return new ServiceDescriptor( service.getType(), VERSION ); 78 } 79 80 86 private static DependencyDescriptor[] toPhoenixDependencys( 87 final org.codehaus.loom.components.util.info.DependencyDescriptor[] dependencies ) 88 { 89 final ArrayList depends = new ArrayList (); 90 for( int i = 0; i < dependencies.length; i++ ) 91 { 92 depends.add( toPhoenixDependency( dependencies[ i ] ) ); 93 } 94 return (DependencyDescriptor[])depends.toArray( 95 new DependencyDescriptor[ depends.size() ] ); 96 } 97 98 104 private static DependencyDescriptor toPhoenixDependency( 105 final org.codehaus.loom.components.util.info.DependencyDescriptor dependency ) 106 { 107 final ServiceDescriptor service = 108 new ServiceDescriptor( dependency.getType(), VERSION ); 109 return new DependencyDescriptor( dependency.getKey(), service ); 110 } 111 112 118 private static BlockDescriptor toBlockDescriptor( 119 final ComponentInfo component ) 120 { 121 final SchemaDescriptor schema = component.getConfigurationSchema(); 122 String schemaType = null; 123 if( null != schema ) 124 { 125 schemaType = schema.getType(); 126 } 127 128 return new BlockDescriptor( null, 129 component.getType().getName(), 130 schemaType, 131 VERSION ); 132 } 133 } 134 | Popular Tags |