1 19 20 package org.netbeans.modules.xml.wsdl.ui.spi; 21 22 import java.util.ArrayList ; 23 import java.util.List ; 24 25 import org.openide.util.Lookup; 26 27 public class WSDLLookupProviderFactory { 28 private static List <WSDLLookupProvider> providers; 29 30 public static <T> T getObject(String namespace, Class <T> className ) { 31 if (providers == null) { 32 lookupFactories(); 33 } 34 35 for (WSDLLookupProvider provider : providers) { 36 if (provider.getProvider(namespace) != null) { 37 return className.cast(provider.getProvider(namespace).getLookup().lookup(className)); 38 } 39 } 40 41 return null; 42 } 43 44 private static synchronized void lookupFactories() { 45 if(providers != null) 46 return; 47 48 providers = new ArrayList <WSDLLookupProvider>(); 49 50 Lookup.Result result = Lookup.getDefault().lookup( 51 new Lookup.Template(WSDLLookupProvider.class)); 52 53 for(Object obj: result.allInstances()) { 54 WSDLLookupProvider factory = (WSDLLookupProvider) obj; 55 providers.add(factory); 56 } 57 58 } 59 } 60 | Popular Tags |