package org.erlide.engine; import java.io.File; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.erlide.util.ErlLogger; import org.erlide.util.services.ExtensionUtils; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; public class ModelActivator implements BundleActivator { private static IErlangEngine engine; @Override public void start(final BundleContext context) throws Exception { ErlLogger.debug("Starting Erlang model api"); engine = ExtensionUtils.getSingletonExtension("org.erlide.model.api.erlangEngine", IErlangEngine.class); if (engine == null) { ErlLogger.warn("Could not instantiate Erlang engine!"); final Status status = new Status(IStatus.ERROR, "org.erlide.model", "Could not instantiate Erlang engine"); throw new CoreException(status); } ErlLogger.debug("Started model api"); } @Override public void stop(final BundleContext context) throws Exception { engine = null; } public static IErlangEngine getErlangEngine() { return engine; } public static void cleanupStateDir() { if (engine == null) { return; } final String ndir = engine.getStateDir(); final File fdir = new File(ndir); for (final File f : fdir.listFiles()) { if (f.isFile()) { f.delete(); } } } }