/*******************************************************************************
* Copyright (c) 2011 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.cdi.ui.marker;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.Platform;
import org.jboss.tools.common.el.core.ELCorePlugin;
public class CDIQuickFixExtensionManager {
public static String EXTENSION_POINT = "org.jboss.tools.cdi.ui.quickFixExtension"; //$NON-NLS-1$
String id;
ICDIMarkerResolutionGeneratorExtension extension;
public CDIQuickFixExtensionManager() {}
public String getId() {
return id;
}
static ICDIMarkerResolutionGeneratorExtension[] INSTANCES;
public static ICDIMarkerResolutionGeneratorExtension[] getInstances() {
if(INSTANCES != null) return INSTANCES;
List<ICDIMarkerResolutionGeneratorExtension> list = new ArrayList<ICDIMarkerResolutionGeneratorExtension>();
IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(EXTENSION_POINT);
IConfigurationElement[] es = point.getConfigurationElements();
for (IConfigurationElement e: es) {
CDIQuickFixExtensionManager n = new CDIQuickFixExtensionManager();
n.id = e.getAttribute("id"); //$NON-NLS-1$
try{
n.extension = (ICDIMarkerResolutionGeneratorExtension)e.createExecutableExtension("class"); //$NON-NLS-1$
list.add(n.extension);
}catch(CoreException ex){
ELCorePlugin.getDefault().logError(ex);
}
}
return INSTANCES = list.toArray(new ICDIMarkerResolutionGeneratorExtension[0]);
}
}