package org.erlide.runtime.runtimeinfo;
import java.util.Collection;
import java.util.List;
public interface IRuntimeInfoCatalog {
RuntimeVersion OLDEST_SUPPORTED_VERSION = new RuntimeVersion(15);
Collection<RuntimeInfo> getRuntimes();
void setRuntimes(final Collection<RuntimeInfo> elements, final String dfltRuntime,
String ideRuntime);
void addRuntime(final RuntimeInfo rt);
Collection<String> getRuntimeNames();
boolean hasRuntimeWithName(final String name);
RuntimeInfo getRuntime(final String name);
void removeRuntime(final String name);
String getDefaultRuntimeName();
void setDefaultRuntime(final String name);
RuntimeInfo getErlideRuntime();
RuntimeInfo getDefaultRuntime();
RuntimeInfo getRuntime(final RuntimeVersion runtimeVersion, final String runtimeName);
List<String> getAllRuntimesVersions();
/**
* If runtime is not set, try to locate one. The first one found as below is
* set as default. All "obvious" runtimes found are stored.
* <ul>
* <li>A system property <code>erlide.runtime</code> can be set to point to
* a location.</li>
* <li>A preference in the default scope
* <code>org.erlide.core/default_runtime</code> can be set to point to a
* location.</li>
* <li>Look for existing Erlang runtimes in a few obvious places and install
* them, choosing a suitable one as default.</li>
* </ul>
*
*/
void initializeRuntimesList();
}