org.eclipse.xtext.builder.resourceloader
Class ParallelResourceLoader

java.lang.Object
  extended by org.eclipse.xtext.builder.resourceloader.AbstractResourceLoader
      extended by org.eclipse.xtext.builder.resourceloader.ParallelResourceLoader
All Implemented Interfaces:
IResourceLoader

public class ParallelResourceLoader
extends AbstractResourceLoader

Loads resources in one more separate threads.

Since:
2.1
Author:
Lieven Lemiengre - Initial contribution and API, Sebastian Zarnekow - Use IProject aware IResourceSetProvider instead of Provider

Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.xtext.builder.resourceloader.AbstractResourceLoader
AbstractResourceLoader.CheckedLoadOperation
 
Nested classes/interfaces inherited from interface org.eclipse.xtext.builder.resourceloader.IResourceLoader
IResourceLoader.LoadOperation, IResourceLoader.LoadOperationException, IResourceLoader.LoadResult, IResourceLoader.Sorter
 
Constructor Summary
ParallelResourceLoader(IResourceSetProvider resourceSetProvider, IResourceLoader.Sorter sorter, int nThreads, int queueSize)
           
 
Method Summary
 IResourceLoader.LoadOperation create(org.eclipse.emf.ecore.resource.ResourceSet parent, org.eclipse.core.resources.IProject project)
          Create a LoadOperation.
 long getTimeout()
           
protected  org.eclipse.emf.ecore.resource.Resource loadResource(org.eclipse.emf.common.util.URI uri, org.eclipse.emf.ecore.resource.ResourceSet localResourceSet, org.eclipse.emf.ecore.resource.ResourceSet parentResourceSet)
           
 void setTimeout(long time, java.util.concurrent.TimeUnit unit)
           
 
Methods inherited from class org.eclipse.xtext.builder.resourceloader.AbstractResourceLoader
getResourceSetProvider, getSorter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ParallelResourceLoader

public ParallelResourceLoader(IResourceSetProvider resourceSetProvider,
                              IResourceLoader.Sorter sorter,
                              int nThreads,
                              int queueSize)
Method Detail

getTimeout

public long getTimeout()

setTimeout

public void setTimeout(long time,
                       java.util.concurrent.TimeUnit unit)

create

public IResourceLoader.LoadOperation create(org.eclipse.emf.ecore.resource.ResourceSet parent,
                                            org.eclipse.core.resources.IProject project)
Description copied from interface: IResourceLoader
Create a LoadOperation. Be careful, while the load operation is running the parent ResourceSet may be read from different threads. Synchronize on the parent ResourceSet when you interact with it!

Parameters:
parent - the parent ResourceSet
Returns:
a LoadOperation

loadResource

protected org.eclipse.emf.ecore.resource.Resource loadResource(org.eclipse.emf.common.util.URI uri,
                                                               org.eclipse.emf.ecore.resource.ResourceSet localResourceSet,
                                                               org.eclipse.emf.ecore.resource.ResourceSet parentResourceSet)
Overrides:
loadResource in class AbstractResourceLoader