com.google.javascript.jscomp.deps
Class SortedDependencies<INPUT extends DependencyInfo>

java.lang.Object
  extended by com.google.javascript.jscomp.deps.SortedDependencies<INPUT>

public class SortedDependencies<INPUT extends DependencyInfo>
extends Object

A sorted list of inputs with dependency information. Uses a stable topological sort to make sure that an input always comes after its dependencies. Also exposes other information about the inputs, like which inputs do not provide symbols.


Nested Class Summary
static class SortedDependencies.CircularDependencyException
           
static class SortedDependencies.MissingProvideException
           
 
Constructor Summary
SortedDependencies(List<INPUT> inputs)
           
 
Method Summary
 List<INPUT> getDependenciesOf(List<INPUT> roots, boolean sorted)
          Gets all the dependencies of the given roots.
 INPUT getInputProviding(String symbol)
          Return the input that gives us the given symbol.
 List<INPUT> getInputsWithoutProvides()
           
 List<INPUT> getSortedDependenciesOf(List<INPUT> roots)
          Gets all the dependencies of the given roots.
 List<INPUT> getSortedList()
           
 INPUT maybeGetInputProviding(String symbol)
          Return the input that gives us the given symbol, or null.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SortedDependencies

public SortedDependencies(List<INPUT> inputs)
                   throws SortedDependencies.CircularDependencyException
Throws:
SortedDependencies.CircularDependencyException
Method Detail

getInputProviding

public INPUT getInputProviding(String symbol)
                                               throws SortedDependencies.MissingProvideException
Return the input that gives us the given symbol.

Throws:
SortedDependencies.MissingProvideException - An exception if there is no input for this symbol.

maybeGetInputProviding

public INPUT maybeGetInputProviding(String symbol)
Return the input that gives us the given symbol, or null.


getSortedList

public List<INPUT> getSortedList()

getSortedDependenciesOf

public List<INPUT> getSortedDependenciesOf(List<INPUT> roots)
Gets all the dependencies of the given roots. The inputs must be returned in a stable order. In other words, if A comes before B, and A does not transitively depend on B, then A must also come before B in the returned list.


getDependenciesOf

public List<INPUT> getDependenciesOf(List<INPUT> roots,
                                     boolean sorted)
Gets all the dependencies of the given roots. The inputs must be returned in a stable order. In other words, if A comes before B, and A does not transitively depend on B, then A must also come before B in the returned list.

Parameters:
sorted - If true, get them in topologically sorted order. If false, get them in the original order they were passed to the compiler.

getInputsWithoutProvides

public List<INPUT> getInputsWithoutProvides()