org.eclipse.xtext.xbase.resource
Class XbaseResource

java.lang.Object
  extended by org.eclipse.emf.common.notify.impl.BasicNotifierImpl
      extended by org.eclipse.emf.common.notify.impl.NotifierImpl
          extended by org.eclipse.emf.ecore.resource.impl.ResourceImpl
              extended by org.eclipse.xtext.resource.XtextResource
                  extended by org.eclipse.xtext.linking.lazy.LazyLinkingResource
                      extended by org.eclipse.xtext.resource.DerivedStateAwareResource
                          extended by org.eclipse.xtext.xbase.resource.XbaseResource
All Implemented Interfaces:
org.eclipse.emf.common.notify.Notifier, org.eclipse.emf.ecore.resource.Resource, org.eclipse.emf.ecore.resource.Resource.Internal
Direct Known Subclasses:
XtendResource

public class XbaseResource
extends DerivedStateAwareResource

Author:
Sven Efftinge - Initial contribution and API, Sebastian Zarnekow - Linking assumptions

Nested Class Summary
protected static class XbaseResource.AssumptionState
           
protected static class XbaseResource.AssumptionTracker
           
protected static class XbaseResource.RootAssumptionTracker
           
 
Nested classes/interfaces inherited from class org.eclipse.xtext.linking.lazy.LazyLinkingResource
LazyLinkingResource.DiagnosticMessageContext
 
Nested classes/interfaces inherited from class org.eclipse.emf.ecore.resource.impl.ResourceImpl
org.eclipse.emf.ecore.resource.impl.ResourceImpl.ContentsEList<E extends java.lang.Object & org.eclipse.emf.ecore.EObject>, org.eclipse.emf.ecore.resource.impl.ResourceImpl.ModificationTrackingAdapter
 
Nested classes/interfaces inherited from class org.eclipse.emf.common.notify.impl.BasicNotifierImpl
org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EAdapterList<E extends java.lang.Object & org.eclipse.emf.common.notify.Adapter>
 
Field Summary
 
Fields inherited from class org.eclipse.xtext.resource.DerivedStateAwareResource
fullyInitialized, isInitializing
 
Fields inherited from class org.eclipse.xtext.resource.XtextResource
isUpdating, OPTION_ENCODING, OPTION_FORMAT, OPTION_RESOLVE_ALL, OPTION_SERIALIZATION_OPTIONS
 
Fields inherited from class org.eclipse.emf.ecore.resource.impl.ResourceImpl
contents, defaultDeleteOptions, defaultLoadOptions, defaultSaveOptions, errors, intrinsicIDToEObjectMap, isLoaded, isLoading, isModified, modificationTrackingAdapter, resourceSet, timeStamp, unloadingContents, uri, warnings
 
Fields inherited from class org.eclipse.emf.common.notify.impl.NotifierImpl
eAdapters, EDELIVER, eFlags, ELAST_NOTIFIER_FLAG
 
Constructor Summary
XbaseResource()
           
 
Method Summary
protected
<T> T
assumeLinked(JvmIdentifiableElement proxy, JvmIdentifiableElement candidate, XAbstractFeatureCall featureCall, XExpression implicitReceiver, XExpression implicitFirstArgument, com.google.inject.Provider<T> algorithm)
           
protected  JvmConstructor getConstructor(XConstructorCall featureCall, boolean resolve)
           
 org.eclipse.emf.ecore.EObject getEObject(java.lang.String uriFragment)
           
protected  JvmIdentifiableElement getFeature(XAbstractFeatureCall featureCall, boolean resolve)
           
protected  XExpression getImplicitFirstArgument(XAbstractFeatureCall featureCall)
           
protected  XExpression getImplicitReceiver(XAbstractFeatureCall featureCall)
           
protected  org.eclipse.emf.ecore.EObject handleCyclicResolution(Triple<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EReference,INode> triple)
           
protected  boolean isUnresolveableProxyCacheable(Triple<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EReference,INode> triple)
           
protected  LinkingAssumptions.Tracker trackAssumptions()
           
protected  JvmIdentifiableElement trackResolution(JvmIdentifiableElement proxy, XExpression owner, org.eclipse.emf.ecore.EReference reference)
          This one is currently implemented as a no-op.
 
Methods inherited from class org.eclipse.xtext.resource.DerivedStateAwareResource
discardDerivedState, getContents, getEObjectForURIFragmentRootSegment, getURIFragmentRootSegment, installDerivedState, setDerivedStateComputer, updateInternalState, updateInternalState
 
Methods inherited from class org.eclipse.xtext.linking.lazy.LazyLinkingResource
createAndAddDiagnostic, createAndAddDiagnostic, createDiagnostic, createDiagnosticMessage, createDiagnosticMessageContext, doLinking, doLoad, getDiagnosticList, getDiagnosticMessageProvider, getEncoder, getLinkingHelper, getLinkingService, getReferences, isEagerLinking, removeDiagnostic, resolveLazyCrossReference, resolveLazyCrossReferences, setDiagnosticMessageProvider, setEagerLinking, setEncoder, setLinkingHelper, setLinkingService
 
Methods inherited from class org.eclipse.xtext.resource.XtextResource
addSyntaxErrors, clearErrorsAndWarnings, clearInternalState, doSave, doUnload, getCache, getConcreteSyntaxValidator, getEncoding, getFragmentProvider, getLanguageName, getLinker, getParser, getParseResult, getResourceServiceProvider, getSerializer, getUnloader, getURIFragment, isValidationDisabled, reattachModificationTracker, reparse, setCache, setEncodingFromOptions, setFragmentProvider, setInjectedParser, setLanguageName, setLinker, setParser, setParseResult, setResourceServiceProvider, setSerializer, setUnloader, setValidationDisabled, unload, update, validateConcreteSyntax
 
Methods inherited from class org.eclipse.emf.ecore.resource.impl.ResourceImpl
addModificationTrackingAdapters, attached, attachedHelper, basicSetResourceSet, createModificationTrackingAdapter, delete, detached, detachedHelper, getAllContents, getAllProperContents, getAllProperContents, getDefaultURIConverter, getEObject, getEObjectByID, getErrors, getIntrinsicIDToEObjectMap, getResourceSet, getTimeStamp, getURI, getURIConverter, getWarnings, isAttachedDetachedHelperRequired, isContentZipEntry, isLoaded, isLoading, isModified, isTrackingModification, load, load, mergeMaps, newContentZipEntry, removeModificationTrackingAdapters, save, save, saveOnlyIfChangedWithFileBuffer, saveOnlyIfChangedWithMemoryBuffer, setIntrinsicIDToEObjectMap, setLoaded, setModified, setTimeStamp, setTrackingModification, setURI, toKeyString, toString, unload, unloaded, useZip
 
Methods inherited from class org.eclipse.emf.common.notify.impl.NotifierImpl
eAdapters, eBasicAdapters, eDeliver, eSetDeliver
 
Methods inherited from class org.eclipse.emf.common.notify.impl.BasicNotifierImpl
eBasicAdapterArray, eBasicHasAdapters, eNotificationRequired, eNotify
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

XbaseResource

public XbaseResource()
Method Detail

trackAssumptions

protected LinkingAssumptions.Tracker trackAssumptions()

assumeLinked

protected <T> T assumeLinked(JvmIdentifiableElement proxy,
                             JvmIdentifiableElement candidate,
                             XAbstractFeatureCall featureCall,
                             XExpression implicitReceiver,
                             XExpression implicitFirstArgument,
                             com.google.inject.Provider<T> algorithm)

getImplicitReceiver

protected XExpression getImplicitReceiver(XAbstractFeatureCall featureCall)

getImplicitFirstArgument

protected XExpression getImplicitFirstArgument(XAbstractFeatureCall featureCall)

getFeature

protected JvmIdentifiableElement getFeature(XAbstractFeatureCall featureCall,
                                            boolean resolve)

trackResolution

protected JvmIdentifiableElement trackResolution(JvmIdentifiableElement proxy,
                                                 XExpression owner,
                                                 org.eclipse.emf.ecore.EReference reference)
This one is currently implemented as a no-op. Intentional implementation would return the resolved instance without changing the owner of the reference. Only single-valued references are currently supported.

Parameters:
proxy - the proxy which should be resolved with tracking.
owner - the owner of the proxy.
reference - the cross reference.

getConstructor

protected JvmConstructor getConstructor(XConstructorCall featureCall,
                                        boolean resolve)

getEObject

public org.eclipse.emf.ecore.EObject getEObject(java.lang.String uriFragment)
Specified by:
getEObject in interface org.eclipse.emf.ecore.resource.Resource
Overrides:
getEObject in class LazyLinkingResource

isUnresolveableProxyCacheable

protected boolean isUnresolveableProxyCacheable(Triple<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EReference,INode> triple)
Overrides:
isUnresolveableProxyCacheable in class LazyLinkingResource

handleCyclicResolution

protected org.eclipse.emf.ecore.EObject handleCyclicResolution(Triple<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EReference,INode> triple)
                                                        throws java.lang.AssertionError
Overrides:
handleCyclicResolution in class LazyLinkingResource
Throws:
java.lang.AssertionError