public Collection<IN4JSProject> recursiveDependencyCollector(IN4JSSourceContainerAware sourceContainerAware){
  if (null == sourceContainerAware) {
    return emptyList();
  }
  final Collection<IN4JSProject> dependencies=newArrayList();
  final RecursionGuard<URI> guard=new RecursionGuard<>();
  recursiveDependencyCollector(sourceContainerAware,dependencies,guard);
  return dependencies;
}

public Collection < IN4JSProject > recursiveDependencyCollector ( IN4JSSourceContainerAware sourceContainerAware ) { if ( null == sourceContainerAware ) { return emptyList ( ) ; } final Collection < IN4JSProject > dependencies = newArrayList ( ) ; final RecursionGuard < URI > guard = new RecursionGuard < > ( ) ; recursiveDependencyCollector ( sourceContainerAware , dependencies , guard ) ; return dependencies ; }
collects transitive collection of project dependencies including project itself .
