package com.prezi.spaghetti.bundle;
import java.io.IOException;
import java.util.SortedSet;
import java.util.SortedMap;
/**
* Represents a module bundle.
*/
public interface ModuleBundle extends Comparable<ModuleBundle> {
/**
* Returns the module's name.
*/
String getName();
/**
* Returns the module's version.
*/
String getVersion();
/**
* Returns the module's format.
*/
ModuleFormat getFormat();
/**
* Returns the syntax language of the module's type definitions.
*/
DefinitionLanguage getDefinitionLanguage();
/**
* Returns the source URL of the module.
*/
String getSourceBaseUrl();
/**
* Returns the names of the module's dependencies.
*/
SortedSet<String> getDependentModules();
/**
* Returns the list of resource file paths.
*/
SortedSet<String> getResourcePaths();
/**
* Returns the list of external dependencies.
*/
SortedMap<String, String> getExternalDependencies();
/**
* Returns the contents of the module's definition.
*/
String getDefinition() throws IOException;
/**
* Returns the module's JavaScript code.
*/
String getJavaScript() throws IOException;
/**
* Returns the module's source map, or <code>null</code> if there is no source map.
*/
String getSourceMap() throws IOException;
}