blob: 65fe38815b6da8685a07c64041595252cdd77705 [file] [log] [blame]
package org.eclipse.jst.javaee.ltk.core.refactoringchecker;
import java.util.ArrayList;
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.eclipse.jst.j2ee.internal.plugin.J2EEPlugin;
import org.eclipse.jst.javaee.ltk.core.nls.RefactoringResourceHandler;
public class CheckStateTester {
protected static final String EXTENSION_POINT = "RefactoringChecker";//$NON-NLS-1$
public static CheckStateTester INSTANCE = new CheckStateTester();
private ArrayList<IRefactoringCheckStateTester> checkStateTesters = new ArrayList();
private boolean registryIsRead = false;
private void readRegistry(){
registryIsRead = true;
IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(J2EEPlugin.PLUGIN_ID, EXTENSION_POINT);
if (point == null) {
J2EEPlugin.logError(RefactoringResourceHandler.CheckStateTester_Could_not_find_Check_State_Tester_E_);
return;
}
IConfigurationElement[] elements = point.getConfigurationElements();
for(IConfigurationElement element: elements){
Object o;
try {
o = element.createExecutableExtension("class"); //$NON-NLS-1$
if(o instanceof IRefactoringCheckStateTester){
checkStateTesters.add((IRefactoringCheckStateTester)o);
}
} catch (CoreException e) {
org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin.logError(e);
}
}
}
public ArrayList<IRefactoringCheckStateTester> getCheckStateTesters(){
if(registryIsRead == false){
readRegistry();
}
return checkStateTesters;
}
}