/*******************************************************************************
* Copyright (c) 2012 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.common.quickfix;
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.CommonPlugin;
public class QuickFixExtension {
public static String EXTENSION_POINT = "org.jboss.tools.common.quickFix"; //$NON-NLS-1$
String id;
IQuickFixGenerator generator;
public QuickFixExtension() {}
public String getId() {
return id;
}
public IQuickFixGenerator getQuickFixGenerator() {
return generator;
}
static QuickFixExtension[] INSTANCES;
public static QuickFixExtension[] getInstances() {
if(INSTANCES != null) return INSTANCES;
List<QuickFixExtension> list = new ArrayList<QuickFixExtension>();
IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(EXTENSION_POINT);
IConfigurationElement[] es = point.getConfigurationElements();
for (IConfigurationElement e: es) {
QuickFixExtension n = new QuickFixExtension();
n.id = e.getAttribute("id"); //$NON-NLS-1$
try{
n.generator = (IQuickFixGenerator)e.createExecutableExtension("generator-class"); //$NON-NLS-1$
}catch(CoreException ex){
CommonPlugin.getDefault().logError(ex);
}
list.add(n);
}
return INSTANCES = list.toArray(new QuickFixExtension[0]);
}
}