KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > codehaus > loom > components > util > ComponentInfoConverter


1 /*
2  * Copyright (C) The Loom Group. All rights reserved.
3  *
4  * This software is published under the terms of the Loom
5  * Software License version 1.1, a copy of which has been included
6  * with this distribution in the LICENSE.txt file.
7  */

8 package org.codehaus.loom.components.util;
9
10 import java.util.ArrayList JavaDoc;
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 /**
20  * Convert a ComponentInfo into a BlockInfo.
21  *
22  * @author <a HREF="mailto:peter@apache.org">Peter Donald</a>
23  * @version $Revision: 1.2 $ $Date: 2004/05/01 12:48:33 $
24  */

25 public class ComponentInfoConverter
26 {
27     private static final Version VERSION = new Version( 1, 0, 0 );
28
29     /**
30      * Convert a ComponentInfo object into a BlockInfo object.
31      *
32      * @param component the ComponentInfo object
33      * @return the BlockInfo object
34      */

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     /**
51      * Return Phoenix services from Info Service array.
52      *
53      * @param services the services
54      * @return the Phoenix services
55      */

56     private static ServiceDescriptor[] toPhoenixServices(
57         final org.codehaus.loom.components.util.info.ServiceDescriptor[] services )
58     {
59         final ArrayList JavaDoc serviceSet = new ArrayList JavaDoc();
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     /**
69      * Convert Info service to Phoenix Service descriptor.
70      *
71      * @param service the Info Service
72      * @return the Phoenix service
73      */

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     /**
81      * Convert Info dependencys to Phoenix dependencys.
82      *
83      * @param dependencies the Info dependencys
84      * @return the Phoenix dependencys
85      */

86     private static DependencyDescriptor[] toPhoenixDependencys(
87         final org.codehaus.loom.components.util.info.DependencyDescriptor[] dependencies )
88     {
89         final ArrayList JavaDoc depends = new ArrayList JavaDoc();
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     /**
99      * Convert Info dependency to Phoenix dependency descriptor.
100      *
101      * @param dependency the Info dependency
102      * @return the Phoenix dependency
103      */

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     /**
113      * Create a BlockDescriptor object from ComponentInfo.
114      *
115      * @param component the info
116      * @return the BlockDescriptor
117      */

118     private static BlockDescriptor toBlockDescriptor(
119         final ComponentInfo component )
120     {
121         final SchemaDescriptor schema = component.getConfigurationSchema();
122         String JavaDoc 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