KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > antmod > descriptor > DescriptorStoreFactory


1 package org.antmod.descriptor;
2
3 import java.util.Iterator JavaDoc;
4
5 import org.antmod.conf.AntmodProperties;
6
7 /**
8  * Provides access to release descriptors, which can come from file system or database
9  * or whatever source is to be used.
10  *
11  * @author Klaas Waslander
12  */

13 public class DescriptorStoreFactory {
14     
15     public static DescriptorStore getConfiguredDescriptorStore() {
16         return getDescriptorStoreByType(AntmodProperties.getProperty("antmod.descriptor.provider"));
17     }
18
19     public static DescriptorStore getDescriptorStoreByType(String JavaDoc descType) {
20         String JavaDoc providerPropStart = "antmod.descriptor.providers.";
21         Iterator JavaDoc descriptorProviders = AntmodProperties.getPropertyNamesStartingWith(providerPropStart);
22         while (descriptorProviders.hasNext()) {
23             String JavaDoc providerPropName = (String JavaDoc)descriptorProviders.next();
24             if (providerPropName.substring(providerPropStart.length()).equals(descType)) {
25                 String JavaDoc providerImpl = AntmodProperties.getProperty(providerPropName);
26                 try {
27                     return (DescriptorStore)Class.forName(providerImpl).newInstance();
28                 } catch (InstantiationException JavaDoc e) {
29                     e.printStackTrace();
30                 } catch (IllegalAccessException JavaDoc e) {
31                     e.printStackTrace();
32                 } catch (ClassNotFoundException JavaDoc e) {
33                     e.printStackTrace();
34                 }
35             }
36         }
37         throw new IllegalArgumentException JavaDoc("Unknown descriptor store type: \"" + descType + "\"");
38     }
39
40 }
41
Popular Tags