Class LightClusteringBuilderState
java.lang.Object
org.eclipse.xtext.resource.impl.AbstractResourceDescriptionChangeEventSource
org.eclipse.xtext.builder.builderState.AbstractBuilderState
org.eclipse.xtext.builder.clustering.ClusteringBuilderState
com._1c.g5.modeling.xtext.builder.LightClusteringBuilderState
- All Implemented Interfaces:
IBuilderStateResourceManagement,org.eclipse.xtext.builder.builderState.IBuilderState,org.eclipse.xtext.resource.IResourceDescription.Event.Source,org.eclipse.xtext.resource.IResourceDescriptions,org.eclipse.xtext.resource.ISelectable
- Direct Known Subclasses:
PersistentClusteringBuilderState
public class LightClusteringBuilderState
extends org.eclipse.xtext.builder.clustering.ClusteringBuilderState
implements IBuilderStateResourceManagement
Lightweight implementation of the
ClusteringBuilderState class.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classSpecial threads for building EDT filesNested classes/interfaces inherited from interface org.eclipse.xtext.resource.IResourceDescriptions
org.eclipse.xtext.resource.IResourceDescriptions.IContextAware, org.eclipse.xtext.resource.IResourceDescriptions.IResourceSetAware, org.eclipse.xtext.resource.IResourceDescriptions.NullImpl -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringSpecial load option key forResourceSet(seeResourceSet.getLoadOptions()) markResourceSetas created in building operationFields inherited from class org.eclipse.xtext.builder.clustering.ClusteringBuilderState
RESOURCELOADER_CROSS_LINKING, RESOURCELOADER_GLOBAL_INDEX -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected org.eclipse.emf.ecore.resource.ResourceaddResource(org.eclipse.emf.ecore.resource.Resource resource, org.eclipse.emf.ecore.resource.ResourceSet resourceSet) protected voidcollectRoughBuildScope(org.eclipse.core.resources.IProject project, org.eclipse.xtext.resource.impl.ResourceDescriptionsData newData, Set<org.eclipse.emf.common.util.URI> result) Collects rough build scope.protected Collection<org.eclipse.xtext.resource.IResourceDescription.Delta>doUpdate(org.eclipse.xtext.builder.impl.BuildData buildData, org.eclipse.xtext.resource.impl.ResourceDescriptionsData newData, org.eclipse.core.runtime.IProgressMonitor monitor) We should override this method for adding logic for clearing resources dataprotected voidvoidfillResourceSetOptions(org.eclipse.emf.ecore.resource.ResourceSet resourceSet) FillResourceSetload options withBUILDING_OPERATION_OPTIONgetExecutorService(int processors) GetsExecutorServicefor paralleling operation.intGets number of permitted threads for buildprotected voidinstallSourceLevelURIs(org.eclipse.xtext.builder.impl.BuildData buildData) voidload()voidsetPermittedThreads(int permittedThreads) Sets number of permitted threads for buildprotected Queue<org.eclipse.xtext.resource.IResourceDescription.Delta>updateNewResourceDescriptions(Queue<org.eclipse.emf.common.util.URI> allUris, int queueFullSize, org.eclipse.core.resources.IProject currentProject, org.eclipse.emf.ecore.resource.ResourceSet resourceSet, Set<org.eclipse.emf.common.util.URI> toBeDeleted, boolean isIndexingOnly, AtomicInteger[] indexes, org.eclipse.xtext.builder.clustering.CurrentDescriptions newState, org.eclipse.core.runtime.SubMonitor subProgress) protected Queue<org.eclipse.xtext.resource.IResourceDescription.Delta>updateNewResourceDescriptionsForQueue(Queue<org.eclipse.emf.common.util.URI> queue, int fullQueueSize, org.eclipse.core.resources.IProject currentProject, org.eclipse.emf.ecore.resource.ResourceSet resourceSet, Set<org.eclipse.emf.common.util.URI> toBeDeleted, boolean isIndexingOnly, AtomicInteger[] indexes, org.eclipse.xtext.builder.clustering.CurrentDescriptions newState, org.eclipse.core.runtime.SubMonitor subProgress) protected voidwriteNewResourceDescriptions(org.eclipse.xtext.builder.impl.BuildData buildData, org.eclipse.xtext.resource.IResourceDescriptions oldState, org.eclipse.xtext.builder.clustering.CurrentDescriptions newState, org.eclipse.core.runtime.IProgressMonitor monitor) We should override this method for additional processing of the resources.Methods inherited from class org.eclipse.xtext.builder.clustering.ClusteringBuilderState
clearResourceSet, getBuiltProject, getResourceDescriptionManager, queueAffectedResourcesMethods inherited from class org.eclipse.xtext.builder.builderState.AbstractBuilderState
clean, doClean, doLoad, ensureNotNull, getAllResourceDescriptions, getCopiedResourceDescriptionsData, getExportedObjects, getExportedObjects, getExportedObjectsByObject, getExportedObjectsByType, getResourceDescription, isEmpty, setPersister, setResourceDescriptionsData, update, updateMarkersMethods inherited from class org.eclipse.xtext.resource.impl.AbstractResourceDescriptionChangeEventSource
addListener, addListeners, notifyListeners, removeListener, removeListenersMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.eclipse.xtext.resource.IResourceDescription.Event.Source
addListener, notifyListeners, removeListener
-
Field Details
-
BUILDING_OPERATION_OPTION
Special load option key forResourceSet(seeResourceSet.getLoadOptions()) markResourceSetas created in building operation- See Also:
-
-
Constructor Details
-
LightClusteringBuilderState
public LightClusteringBuilderState()Constructor
-
-
Method Details
-
load
public void load()- Overrides:
loadin classorg.eclipse.xtext.builder.builderState.AbstractBuilderState
-
getPermittedThreads
public int getPermittedThreads()Description copied from interface:IBuilderStateResourceManagementGets number of permitted threads for build- Specified by:
getPermittedThreadsin interfaceIBuilderStateResourceManagement- Returns:
- number of permitted threads for build
-
setPermittedThreads
public void setPermittedThreads(int permittedThreads) Description copied from interface:IBuilderStateResourceManagementSets number of permitted threads for build- Specified by:
setPermittedThreadsin interfaceIBuilderStateResourceManagement- Parameters:
permittedThreads- number of permitted threads for build
-
fillResourceSetOptions
public void fillResourceSetOptions(org.eclipse.emf.ecore.resource.ResourceSet resourceSet) FillResourceSetload options withBUILDING_OPERATION_OPTION- Parameters:
resourceSet- fillingResourceSet,cannot benull
-
getExecutorService
GetsExecutorServicefor paralleling operation. CreatingThreadwill have name "LCBuilderState" with index adding- Parameters:
processors- number of allowed independentThreads- Returns:
ExecutorServicefor paralleling operation, cannot benull
-
ensureLoaded
protected void ensureLoaded()- Overrides:
ensureLoadedin classorg.eclipse.xtext.builder.builderState.AbstractBuilderState
-
installSourceLevelURIs
protected void installSourceLevelURIs(org.eclipse.xtext.builder.impl.BuildData buildData) - Overrides:
installSourceLevelURIsin classorg.eclipse.xtext.builder.clustering.ClusteringBuilderState
-
addResource
protected org.eclipse.emf.ecore.resource.Resource addResource(org.eclipse.emf.ecore.resource.Resource resource, org.eclipse.emf.ecore.resource.ResourceSet resourceSet) - Overrides:
addResourcein classorg.eclipse.xtext.builder.clustering.ClusteringBuilderState
-
doUpdate
protected Collection<org.eclipse.xtext.resource.IResourceDescription.Delta> doUpdate(org.eclipse.xtext.builder.impl.BuildData buildData, org.eclipse.xtext.resource.impl.ResourceDescriptionsData newData, org.eclipse.core.runtime.IProgressMonitor monitor) We should override this method for adding logic for clearing resources data- Overrides:
doUpdatein classorg.eclipse.xtext.builder.clustering.ClusteringBuilderState
-
collectRoughBuildScope
protected void collectRoughBuildScope(org.eclipse.core.resources.IProject project, org.eclipse.xtext.resource.impl.ResourceDescriptionsData newData, Set<org.eclipse.emf.common.util.URI> result) Collects rough build scope. Rough means that it may contain URIs of the resources that do not require building.- Parameters:
project- The project that is being built. May benull.newData- The new resource descriptions. May not benull.result- The result set the URIs will be added to. May not benull.
-
updateNewResourceDescriptions
protected Queue<org.eclipse.xtext.resource.IResourceDescription.Delta> updateNewResourceDescriptions(Queue<org.eclipse.emf.common.util.URI> allUris, int queueFullSize, org.eclipse.core.resources.IProject currentProject, org.eclipse.emf.ecore.resource.ResourceSet resourceSet, Set<org.eclipse.emf.common.util.URI> toBeDeleted, boolean isIndexingOnly, AtomicInteger[] indexes, org.eclipse.xtext.builder.clustering.CurrentDescriptions newState, org.eclipse.core.runtime.SubMonitor subProgress) UpdatesIResourceDescriptionfor concreteQueueofURIs. CreatesIResourceDescription.Deltawith information ofIResourceDescriptionupdating. This method contains logic for paralleling updating operation forgetPermittedThreads()threads- Parameters:
allUris- allURIs for updateIResourceDescription, cannot benullqueueFullSize- initial size of theQueueofURIs for updating, need for right update ofSubMonitorcurrentProject- actual project for updatingIResourceDescription, cannot benullresourceSet- actualResourceSetfor creatingResources, cannot benulltoBeDeleted- set of theURIs which were deleted from project, cannot benullisIndexingOnly-trueif creatingResources should be create for only index operationindexes- special indexes distributed from all threads of updatingIResourceDescription.- indexes[0] number of
IResourceDescriptionupdating in this build - indexes[1] number of
IResourceDescriptionupdating in this step - indexes[2] number of threads updating
IResourceDescription
- indexes[0] number of
newState-CurrentDescriptionsfor gettingIResourceDescriptionbyURI, cannot benullsubProgress-SubMonitorfor show progress of operation, cannot benull- Returns:
IResourceDescription.Deltawith information ofIResourceDescriptionupdating, nevernull
-
updateNewResourceDescriptionsForQueue
protected Queue<org.eclipse.xtext.resource.IResourceDescription.Delta> updateNewResourceDescriptionsForQueue(Queue<org.eclipse.emf.common.util.URI> queue, int fullQueueSize, org.eclipse.core.resources.IProject currentProject, org.eclipse.emf.ecore.resource.ResourceSet resourceSet, Set<org.eclipse.emf.common.util.URI> toBeDeleted, boolean isIndexingOnly, AtomicInteger[] indexes, org.eclipse.xtext.builder.clustering.CurrentDescriptions newState, org.eclipse.core.runtime.SubMonitor subProgress) UpdatesIResourceDescriptionfor concreteQueueofURIs. CreatesIResourceDescription.Deltawith information ofIResourceDescriptionupdating.- Parameters:
queue- allURIs for updateIResourceDescription, cannot benullfullQueueSize- initial size of theQueueofURIs for updating, need for right update ofSubMonitorcurrentProject- actual project for updatingIResourceDescription, cannot benullresourceSet- actualResourceSetfor creatingResources, cannot benulltoBeDeleted- set of theURIs which were deleted from project, cannot benullisIndexingOnly-trueif creatingResources should be create for only index operationindexes- special indexes distributed from all threads of updatingIResourceDescription.- indexes[0] number of
IResourceDescriptionupdating in this build - indexes[1] number of
IResourceDescriptionupdating in this step - indexes[2] number of threads updating
IResourceDescription
- indexes[0] number of
newState-CurrentDescriptionsfor gettingIResourceDescriptionbyURI, cannot benullsubProgress-SubMonitorfor show progress of operation, cannot benull- Returns:
IResourceDescription.Deltawith information ofIResourceDescriptionupdating, nevernull
-
writeNewResourceDescriptions
protected void writeNewResourceDescriptions(org.eclipse.xtext.builder.impl.BuildData buildData, org.eclipse.xtext.resource.IResourceDescriptions oldState, org.eclipse.xtext.builder.clustering.CurrentDescriptions newState, org.eclipse.core.runtime.IProgressMonitor monitor) We should override this method for additional processing of the resources. SeeILightClusteringBuilderStateCallbackService- Overrides:
writeNewResourceDescriptionsin classorg.eclipse.xtext.builder.clustering.ClusteringBuilderState
-