01: package net.refractions.udig.catalog.ui.workflow;
02:
03: import java.util.ArrayList;
04: import java.util.List;
05:
06: import net.refractions.udig.catalog.IService;
07: import net.refractions.udig.catalog.ui.CatalogUIPlugin;
08: import net.refractions.udig.catalog.ui.IConnectionErrorHandler;
09: import net.refractions.udig.core.internal.ExtensionPointProcessor;
10: import net.refractions.udig.core.internal.ExtensionPointUtil;
11:
12: import org.eclipse.core.runtime.IConfigurationElement;
13: import org.eclipse.core.runtime.IExtension;
14:
15: public class ConnectionErrorHandlerProcessor implements
16: ExtensionPointProcessor {
17:
18: IService s;
19: Throwable t;
20: ArrayList<IConnectionErrorHandler> handlers;
21:
22: public List<IConnectionErrorHandler> process(IService s, Throwable t) {
23: this .s = s;
24: this .t = t;
25: handlers = new ArrayList<IConnectionErrorHandler>();
26:
27: ExtensionPointUtil.process(CatalogUIPlugin.getDefault(),
28: IConnectionErrorHandler.XPID, this );
29:
30: return handlers;
31: }
32:
33: public void process(IExtension extension,
34: IConfigurationElement element) throws Exception {
35:
36: try {
37: IConnectionErrorHandler handler = (IConnectionErrorHandler) element
38: .createExecutableExtension("class"); //$NON-NLS-1$
39: if (handler.canHandle(s, t)) {
40: handlers.add(handler);
41: }
42: } catch (Throwable t) {
43: CatalogUIPlugin.log(t.getLocalizedMessage(), t);
44: }
45: }
46: }
|