/*******************************************************************************
* Copyright (c) 2006-2011 eBay Inc. All Rights Reserved.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*******************************************************************************/
package org.ebayopensource.turmeric.eclipse.ui.extensions;
import java.util.ArrayList;
import java.util.Collection;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtension;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.Platform;
/**
* A factory for creating ProjectProvider objects.
*/
public class ProjectProviderFactory {
private static final String PROVIDER_NAME = "provider";
private static final String PROJECT_WIZARD_PROVIDER_ID = "org.ebayopensource.turmeric.eclipse.ui.projectWizardProvider";
private IExtensionPoint extensionPoint;
/**
* Instantiates a new project provider factory.
*/
public ProjectProviderFactory() {
IExtensionRegistry registry = Platform.getExtensionRegistry();
extensionPoint = registry.getExtensionPoint(PROJECT_WIZARD_PROVIDER_ID);
}
/**
* Creates a new ProjectProvider object.
*
* @return the collection< i turmeric provider>
*/
public Collection<ITurmericProvider>createProviders() {
IExtension[] extensions = extensionPoint.getExtensions();
ArrayList<ITurmericProvider> providers = new ArrayList<ITurmericProvider>();
for(IExtension ext : extensions) {
IConfigurationElement[] elems = ext.getConfigurationElements();
for (IConfigurationElement elm : elems) {
if (PROVIDER_NAME.equals(elm.getName())) {
ITurmericProvider provider = new TurmericProvider(elm);
providers.add(provider);
}
}
}
return providers;
}
}