org.eclipse.xtext.xtext
Class XtextLinker

java.lang.Object
  extended by org.eclipse.xtext.linking.impl.AbstractLinker
      extended by org.eclipse.xtext.linking.impl.AbstractCleaningLinker
          extended by org.eclipse.xtext.linking.impl.Linker
              extended by org.eclipse.xtext.xtext.XtextLinker
All Implemented Interfaces:
ILinker

public class XtextLinker
extends Linker

Author:
Sebastian Zarnekow - Initial contribution and API

Nested Class Summary
static class XtextLinker.PackageRemover
           
 
Nested classes/interfaces inherited from class org.eclipse.xtext.linking.impl.Linker
Linker.LinkingDiagnosticContext
 
Constructor Summary
XtextLinker()
           
 
Method Summary
protected  void afterModelLinked(org.eclipse.emf.ecore.EObject model, IDiagnosticConsumer diagnosticsConsumer)
           
protected  void beforeEnsureIsLinked(org.eclipse.emf.ecore.EObject obj, org.eclipse.emf.ecore.EReference ref, IDiagnosticProducer producer)
           
protected  void beforeModelLinked(org.eclipse.emf.ecore.EObject model, IDiagnosticConsumer diagnosticsConsumer)
           
protected  boolean canSetDefaultValues(org.eclipse.emf.ecore.EReference ref)
           
protected  void clearReference(org.eclipse.emf.ecore.EObject obj, org.eclipse.emf.ecore.EReference ref)
          We add typeRefs without Nodes on the fly, so we should remove them before relinking.
protected  IDiagnosticProducer createDiagnosticProducer(IDiagnosticConsumer consumer)
           
protected  Xtext2EcoreTransformer createTransformer(Grammar grammar, IDiagnosticConsumer consumer)
           
 OnChangeEvictingCache getCache()
           
 XtextLinker.PackageRemover getPackageRemover()
           
 IXtext2EcorePostProcessor getPostProcessor()
           
 IScopeProvider getScopeProvider()
           
 void linkModel(org.eclipse.emf.ecore.EObject model, IDiagnosticConsumer consumer)
          Sets cross references in the passed EObject and its contents, using the information available (usually using the INode model associated via NodeModelUtils)
 void setCache(OnChangeEvictingCache cache)
           
protected  void setDefaultValueImpl(org.eclipse.emf.ecore.EObject obj, org.eclipse.emf.ecore.EReference ref, IDiagnosticProducer producer)
           
 void setPackageRemover(XtextLinker.PackageRemover packageRemover)
           
 void setPostProcessor(IXtext2EcorePostProcessor postProcessor)
           
 void setScopeProvider(IScopeProvider scopeProvider)
           
protected  void updateOverriddenRules(Grammar grammar)
           
protected  void updateOverriddenRules(Grammar grammar, java.util.Map<java.lang.String,AbstractRule> rulePerName)
           
protected  void updateOverriddenRules(Grammar grammar, java.util.Map<java.lang.String,AbstractRule> rulePerName, java.util.Set<Grammar> visitedGrammars)
           
 
Methods inherited from class org.eclipse.xtext.linking.impl.Linker
createDiagnosticContext, doLinkModel, ensureIsLinked, ensureLinked, ensureModelLinked, getDiagnosticMessageProvider, getLinkedObject, getLinkingHelper, getLinkingService, isNullValidResult, setDefaultValue, setDiagnosticMessageProvider, setLinkingHelper, setLinkingService
 
Methods inherited from class org.eclipse.xtext.linking.impl.AbstractCleaningLinker
clearAllReferences, clearReferences, shouldCheckParentNode
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XtextLinker

public XtextLinker()
Method Detail

getScopeProvider

public IScopeProvider getScopeProvider()

setScopeProvider

public void setScopeProvider(IScopeProvider scopeProvider)

getPostProcessor

public IXtext2EcorePostProcessor getPostProcessor()

setPostProcessor

public void setPostProcessor(IXtext2EcorePostProcessor postProcessor)

createDiagnosticProducer

protected IDiagnosticProducer createDiagnosticProducer(IDiagnosticConsumer consumer)
Overrides:
createDiagnosticProducer in class Linker

canSetDefaultValues

protected boolean canSetDefaultValues(org.eclipse.emf.ecore.EReference ref)
Overrides:
canSetDefaultValues in class Linker

setDefaultValueImpl

protected void setDefaultValueImpl(org.eclipse.emf.ecore.EObject obj,
                                   org.eclipse.emf.ecore.EReference ref,
                                   IDiagnosticProducer producer)
Overrides:
setDefaultValueImpl in class Linker

beforeEnsureIsLinked

protected void beforeEnsureIsLinked(org.eclipse.emf.ecore.EObject obj,
                                    org.eclipse.emf.ecore.EReference ref,
                                    IDiagnosticProducer producer)
Overrides:
beforeEnsureIsLinked in class Linker

createTransformer

protected Xtext2EcoreTransformer createTransformer(Grammar grammar,
                                                   IDiagnosticConsumer consumer)

beforeModelLinked

protected void beforeModelLinked(org.eclipse.emf.ecore.EObject model,
                                 IDiagnosticConsumer diagnosticsConsumer)
Overrides:
beforeModelLinked in class AbstractCleaningLinker

afterModelLinked

protected void afterModelLinked(org.eclipse.emf.ecore.EObject model,
                                IDiagnosticConsumer diagnosticsConsumer)
Overrides:
afterModelLinked in class AbstractCleaningLinker

linkModel

public void linkModel(org.eclipse.emf.ecore.EObject model,
                      IDiagnosticConsumer consumer)
Description copied from interface: ILinker
Sets cross references in the passed EObject and its contents, using the information available (usually using the INode model associated via NodeModelUtils)

Specified by:
linkModel in interface ILinker
Overrides:
linkModel in class AbstractCleaningLinker
Parameters:
model - the root model of a resource
consumer - the consumer of linking diagnostics

updateOverriddenRules

protected void updateOverriddenRules(Grammar grammar)

updateOverriddenRules

protected void updateOverriddenRules(Grammar grammar,
                                     java.util.Map<java.lang.String,AbstractRule> rulePerName,
                                     java.util.Set<Grammar> visitedGrammars)

updateOverriddenRules

protected void updateOverriddenRules(Grammar grammar,
                                     java.util.Map<java.lang.String,AbstractRule> rulePerName)

clearReference

protected void clearReference(org.eclipse.emf.ecore.EObject obj,
                              org.eclipse.emf.ecore.EReference ref)
We add typeRefs without Nodes on the fly, so we should remove them before relinking.

Overrides:
clearReference in class AbstractCleaningLinker

setPackageRemover

public void setPackageRemover(XtextLinker.PackageRemover packageRemover)

getPackageRemover

public XtextLinker.PackageRemover getPackageRemover()

setCache

public void setCache(OnChangeEvictingCache cache)

getCache

public OnChangeEvictingCache getCache()