package com.mobilesorcery.sdk.capabilities.core;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.Platform;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
import com.mobilesorcery.sdk.capabilities.core.apianalysis.APICapabilitiesAnalyzer;
import com.mobilesorcery.sdk.capabilities.core.internal.DefaultCapabilitiesMatcher;
import com.mobilesorcery.sdk.core.CoreMoSyncPlugin;
/**
* The activator class controls the plug-in life cycle
*/
public class CapabilitiesPlugin extends AbstractUIPlugin {
// The plug-in ID
public static final String PLUGIN_ID = "com.mobilesorcery.sdk.capabilities.ui"; //$NON-NLS-1$
// The shared instance
private static CapabilitiesPlugin plugin;
private DefaultCapabilitiesMatcher defaultMatcher;
/**
* The constructor
*/
public CapabilitiesPlugin() {
}
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
*/
public void start(BundleContext context) throws Exception {
super.start(context);
plugin = this;
initCapabilitiesMatcher();
}
private void initCapabilitiesMatcher() {
defaultMatcher = new DefaultCapabilitiesMatcher();
IConfigurationElement[] matcherExtensions = Platform.getExtensionRegistry().getConfigurationElementsFor("com.mobilesorcery.sdk.capabilities.matchers");
for (int i = 0; i < matcherExtensions.length; i++) {
try {
ICapabilitiesMatcher matcher = (ICapabilitiesMatcher) matcherExtensions[i].createExecutableExtension("class");
// TODO: Add proxy!
defaultMatcher.add(matcher);
} catch (Exception e) {
CoreMoSyncPlugin.getDefault().log(e);
}
}
}
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
*/
public void stop(BundleContext context) throws Exception {
plugin = null;
super.stop(context);
}
/**
* Returns the shared instance
*
* @return the shared instance
*/
public static CapabilitiesPlugin getDefault() {
return plugin;
}
public ICapabilitiesAnalyzer createAnalyzer() {
return new APICapabilitiesAnalyzer();
}
public ICapabilitiesMatcher getMatcher() {
return defaultMatcher;
}
}