package org.erlide.engine.model; import org.erlide.engine.model.root.IErlProject; import org.erlide.runtime.rpc.IOtpRpc; import org.erlide.runtime.rpc.IOtpRpcProvider; import org.erlide.runtime.runtimeinfo.RuntimeVersion; import org.erlide.util.services.ExtensionUtils; public class OtpRpcFactory { private static IOtpRpcProvider provider; public static IOtpRpc getOtpRpc(final RuntimeVersion version) { if (provider == null) { provider = getOtpRpcProvider(); } return provider.get(version); } public static IOtpRpc getOtpRpcForProject(final IErlProject project) { if (provider == null) { provider = getOtpRpcProvider(); } return provider.get(project.getName()); } public static IOtpRpc getOtpRpc() { if (provider == null) { provider = getOtpRpcProvider(); } return provider.get(); } private static IOtpRpcProvider getOtpRpcProvider() { return ExtensionUtils.getSingletonExtension("org.erlide.backend.backend", IOtpRpcProvider.class); } }