package net.sf.eclipsefp.haskell.core.cabalmodel;
import java.util.ArrayList;
import java.util.Collection;
import net.sf.eclipsefp.haskell.core.HaskellCorePlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
/**
* Manager for cabal contributors
* @author JP Moresmau
*
*/
public class CabalContributorManager {
private static Collection<ICabalContributor> contribs=null;
public static Collection<ICabalContributor> getContributors(){
if (contribs==null){
IConfigurationElement[] elts=HaskellCorePlugin.getDefault().getExtensions( HaskellCorePlugin.ID_EXT_POINT_CABAL_CONTRIBUTORS );
contribs=new ArrayList<>(elts.length);
for (IConfigurationElement elem:elts){
try {
Object o = elem.createExecutableExtension(HaskellCorePlugin.ATT_CLASS);
contribs.add( (ICabalContributor )o);
} catch (CoreException cex) {
HaskellCorePlugin.log( cex );
}
}
}
return contribs;
}
}