Package tools.refinery.language.resource
Class ProblemResource
java.lang.Object
org.eclipse.emf.common.notify.impl.BasicNotifierImpl
org.eclipse.emf.common.notify.impl.NotifierImpl
org.eclipse.emf.ecore.resource.impl.ResourceImpl
org.eclipse.xtext.resource.XtextResource
org.eclipse.xtext.linking.lazy.LazyLinkingResource
org.eclipse.xtext.resource.persistence.StorageAwareResource
org.eclipse.xtext.resource.DerivedStateAwareResource
tools.refinery.language.resource.ProblemResource
- All Implemented Interfaces:
 org.eclipse.emf.common.notify.Notifier,org.eclipse.emf.ecore.resource.Resource,org.eclipse.emf.ecore.resource.Resource.Internal
public class ProblemResource
extends org.eclipse.xtext.resource.DerivedStateAwareResource
- 
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classOur own version ofLazyLinkingResource.CyclicLinkingException, because thetripefield in the original one is not accessible.protected static classMarks all diagnostics inserted byProblemResourcewith a common superclass so that they can later be removed.Nested classes/interfaces inherited from class org.eclipse.xtext.linking.lazy.LazyLinkingResource
org.eclipse.xtext.linking.lazy.LazyLinkingResource.CyclicLinkingException, org.eclipse.xtext.linking.lazy.LazyLinkingResource.DiagnosticMessageContextNested classes/interfaces inherited from class org.eclipse.emf.ecore.resource.impl.ResourceImpl
org.eclipse.emf.ecore.resource.impl.ResourceImpl.ContentsEList<E extends Object & org.eclipse.emf.ecore.EObject>, org.eclipse.emf.ecore.resource.impl.ResourceImpl.ModificationTrackingAdapterNested classes/interfaces inherited from class org.eclipse.emf.common.notify.impl.BasicNotifierImpl
org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EAdapterList<E extends Object & org.eclipse.emf.common.notify.Adapter>, org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EObservableAdapterList, org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EScannableAdapterListNested classes/interfaces inherited from interface org.eclipse.emf.ecore.resource.Resource
org.eclipse.emf.ecore.resource.Resource.Diagnostic, org.eclipse.emf.ecore.resource.Resource.Factory, org.eclipse.emf.ecore.resource.Resource.Internal, org.eclipse.emf.ecore.resource.Resource.IOWrappedException - 
Field Summary
Fields inherited from class org.eclipse.xtext.resource.DerivedStateAwareResource
fullyInitialized, isInitializingFields inherited from class org.eclipse.xtext.resource.persistence.StorageAwareResource
UNRESOLVABLE_FRAGMENTFields inherited from class org.eclipse.xtext.linking.lazy.LazyLinkingResource
CYCLIC_LINKING_DECTECTION_COUNTER_LIMIT, cyclicLinkingDectectionCounterLimit, resolving, UNRESOLVEABLE_PROXIES_KEYFields inherited from class org.eclipse.xtext.resource.XtextResource
isUpdating, operationCanceledManager, OPTION_ENCODING, OPTION_FORMAT, OPTION_RESOLVE_ALL, OPTION_SERIALIZATION_OPTIONSFields inherited from class org.eclipse.emf.ecore.resource.impl.ResourceImpl
contents, defaultDeleteOptions, defaultLoadOptions, defaultSaveOptions, errors, intrinsicIDToEObjectMap, isLoaded, isLoading, isModified, modificationTrackingAdapter, resourceSet, timeStamp, unloadingContents, uri, warningsFields inherited from class org.eclipse.emf.common.notify.impl.NotifierImpl
eAdapters, EDELIVER, eFlags, ELAST_NOTIFIER_FLAGFields inherited from interface org.eclipse.emf.ecore.resource.Resource
OPTION_CIPHER, OPTION_LINE_DELIMITER, OPTION_LINE_DELIMITER_UNSPECIFIED, OPTION_SAVE_ONLY_IF_CHANGED, OPTION_SAVE_ONLY_IF_CHANGED_FILE_BUFFER, OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER, OPTION_ZIP, RESOURCE__CONTENTS, RESOURCE__ERRORS, RESOURCE__IS_LOADED, RESOURCE__IS_MODIFIED, RESOURCE__IS_TRACKING_MODIFICATION, RESOURCE__RESOURCE_SET, RESOURCE__TIME_STAMP, RESOURCE__URI, RESOURCE__WARNINGS - 
Constructor Summary
Constructors - 
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddOrReplaceDiagnostic(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EReference, org.eclipse.xtext.nodemodel.INode> triple, org.eclipse.xtext.diagnostics.DiagnosticMessage message) Adds a diagnostic message while maintaining the invariant that at most oneProblemResource.ProblemResourceLinkingDiagnosticis added to theResourceImpl.getErrors()list.protected voidcreateAndAddAmbiguousReferenceDiagnostic(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EReference, org.eclipse.xtext.nodemodel.INode> triple) protected voidcreateAndAddDiagnostic(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EReference, org.eclipse.xtext.nodemodel.INode> triple) protected voidcreateAndAddDiagnostic(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EReference, org.eclipse.xtext.nodemodel.INode> triple, org.eclipse.xtext.linking.impl.IllegalNodeException ex) protected org.eclipse.emf.ecore.resource.Resource.DiagnosticcreateDiagnostic(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EReference, org.eclipse.xtext.nodemodel.INode> triple, org.eclipse.xtext.diagnostics.DiagnosticMessage message) protected org.eclipse.emf.ecore.EObjectgetEObject(String uriFragment, org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EReference, org.eclipse.xtext.nodemodel.INode> triple) Tries to resolve a reference and emits a diagnostic if the reference is unresolvable or ambiguous.protected org.eclipse.emf.ecore.EObjecthandleCyclicResolution(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EReference, org.eclipse.xtext.nodemodel.INode> triple) protected voidremoveDiagnostic(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EReference, org.eclipse.xtext.nodemodel.INode> triple) Removes theProblemResource.ProblemResourceLinkingDiagnosticcorresponding to the given node, if prevesent, from theResourceImpl.getErrors()list.protected voidupdateInternalState(org.eclipse.xtext.parser.IParseResult oldParseResult, org.eclipse.xtext.parser.IParseResult newParseResult) Methods inherited from class org.eclipse.xtext.resource.DerivedStateAwareResource
clearInternalState, discardDerivedState, doDiscardDerivedState, doGetContents, doUnload, getContents, getEObjectForURIFragmentRootSegment, getUnloadingContents, getURIFragmentRootSegment, installDerivedState, isFullyInitialized, isInitializing, setDerivedStateComputer, setFullyInitialized, updateInternalStateMethods inherited from class org.eclipse.xtext.resource.persistence.StorageAwareResource
customReadNodeModel, customWriteNodeModel, getEObject, getPortableURIs, getResourceDescription, getResourceStorageFacade, getUnresolvableURIFragments, isLoadedFromStorage, load, loadFromStorage, setIsLoadedFromStorage, setResourceDescriptionMethods inherited from class org.eclipse.xtext.linking.lazy.LazyLinkingResource
addLazyProxyInformation, clearLazyProxyInformation, createDiagnosticMessage, createDiagnosticMessageContext, doLinking, doLoad, doResolveLazyCrossReference, getDiagnosticList, getDiagnosticMessageProvider, getEncoder, getLazyProxyInformation, getLazyProxyInformation, getLinkingHelper, getLinkingService, getReferences, getResolvingSet, hasLazyProxyInformation, isEagerLinking, isPotentialLazyCrossReference, isUnresolveableProxyCacheable, markUnresolvable, removeLazyProxyInformation, resolveLazyCrossReference, resolveLazyCrossReferences, setDiagnosticMessageProvider, setEagerLinking, setEncoder, setLinkingHelper, setLinkingServiceMethods inherited from class org.eclipse.xtext.resource.XtextResource
addSyntaxDiagnostic, addSyntaxErrors, basicGetEObject, basicSetResourceSet, clearCache, clearErrorsAndWarnings, createReader, doSave, getCache, getConcreteSyntaxValidator, getEncoding, getEntryPoint, getFragmentProvider, getLanguageName, getLinker, getModificationStamp, getParser, getParseResult, getParseResultWrapper, getResourceServiceProvider, getSerializer, getUnloader, getURIFragment, internalGetParseResult, isValidationDisabled, reattachModificationTracker, relink, reparse, setCache, setEncodingFromOptions, setEntryPoint, setFragmentProvider, setInjectedParser, setLanguageName, setLinker, setModificationStamp, setParser, setParseResult, setResourceServiceProvider, setSerializer, setUnloader, setValidationDisabled, unload, update, validateConcreteSyntax, wrapMethods inherited from class org.eclipse.emf.ecore.resource.impl.ResourceImpl
addModificationTrackingAdapters, attached, attachedHelper, createModificationTrackingAdapter, delete, detached, detachedHelper, getAllContents, getAllProperContents, getAllProperContents, getDefaultURIConverter, getEObject, getEObjectByID, getErrors, getIDForEObject, getIntrinsicIDToEObjectMap, getResourceSet, getTimeStamp, getURI, getURIConverter, getWarnings, handleLoadResponse, handleSaveResponse, isAttachedDetachedHelperRequired, isContentZipEntry, isLoaded, isLoading, isModified, isTrackingModification, load, mergeMaps, newContentZipEntry, removeModificationTrackingAdapters, save, save, saveOnlyIfChangedWithFileBuffer, saveOnlyIfChangedWithMemoryBuffer, setIntrinsicIDToEObjectMap, setLoaded, setModified, setTimeStamp, setTrackingModification, setURI, supportIDRelativeURIFragmentPaths, toKeyString, toString, unload, unloaded, useZipMethods inherited from class org.eclipse.emf.common.notify.impl.NotifierImpl
eAdapters, eBasicAdapters, eDeliver, eSetDeliverMethods inherited from class org.eclipse.emf.common.notify.impl.BasicNotifierImpl
eBasicAdapterArray, eBasicHasAdapters, eNotificationRequired, eNotifyMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.emf.common.notify.Notifier
eAdapters, eDeliver, eNotify, eSetDeliver 
- 
Constructor Details
- 
ProblemResource
public ProblemResource() 
 - 
 - 
Method Details
- 
updateInternalState
protected void updateInternalState(org.eclipse.xtext.parser.IParseResult oldParseResult, org.eclipse.xtext.parser.IParseResult newParseResult) - Overrides:
 updateInternalStatein classorg.eclipse.xtext.resource.DerivedStateAwareResource
 - 
getEObject
protected org.eclipse.emf.ecore.EObject getEObject(String uriFragment, org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EReference, throws AssertionErrororg.eclipse.xtext.nodemodel.INode> triple) Tries to resolve a reference and emits a diagnostic if the reference is unresolvable or ambiguous.This method was copied from
LazyLinkingResource.getEObject(String, Triple), but we modified it to also handle ambiguous references.- Overrides:
 getEObjectin classorg.eclipse.xtext.linking.lazy.LazyLinkingResource- Parameters:
 uriFragment- The URI fragment to resolve.triple- The linking triple.- Returns:
 - The resolved 
EObject. - Throws:
 AssertionError- If the URI fragment is unresolvable.
 - 
handleCyclicResolution
protected org.eclipse.emf.ecore.EObject handleCyclicResolution(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EReference, throws AssertionErrororg.eclipse.xtext.nodemodel.INode> triple) - Overrides:
 handleCyclicResolutionin classorg.eclipse.xtext.linking.lazy.LazyLinkingResource- Throws:
 AssertionError
 - 
createAndAddDiagnostic
protected void createAndAddDiagnostic(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EReference, org.eclipse.xtext.nodemodel.INode> triple) - Overrides:
 createAndAddDiagnosticin classorg.eclipse.xtext.linking.lazy.LazyLinkingResource
 - 
createAndAddDiagnostic
protected void createAndAddDiagnostic(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EReference, org.eclipse.xtext.nodemodel.INode> triple, org.eclipse.xtext.linking.impl.IllegalNodeException ex) - Overrides:
 createAndAddDiagnosticin classorg.eclipse.xtext.linking.lazy.LazyLinkingResource
 - 
createAndAddAmbiguousReferenceDiagnostic
protected void createAndAddAmbiguousReferenceDiagnostic(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EReference, org.eclipse.xtext.nodemodel.INode> triple)  - 
addOrReplaceDiagnostic
protected void addOrReplaceDiagnostic(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EReference, org.eclipse.xtext.nodemodel.INode> triple, org.eclipse.xtext.diagnostics.DiagnosticMessage message) Adds a diagnostic message while maintaining the invariant that at most oneProblemResource.ProblemResourceLinkingDiagnosticis added to theResourceImpl.getErrors()list.- Parameters:
 triple- The triple to add the diagnostic for.message- The diagnostic message. Must haveSeverity.ERROR.
 - 
removeDiagnostic
protected void removeDiagnostic(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EReference, org.eclipse.xtext.nodemodel.INode> triple) Removes theProblemResource.ProblemResourceLinkingDiagnosticcorresponding to the given node, if prevesent, from theResourceImpl.getErrors()list.- Overrides:
 removeDiagnosticin classorg.eclipse.xtext.linking.lazy.LazyLinkingResource- Parameters:
 triple- The triple to add the diagnostic for.
 - 
createDiagnostic
protected org.eclipse.emf.ecore.resource.Resource.Diagnostic createDiagnostic(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EReference, org.eclipse.xtext.nodemodel.INode> triple, org.eclipse.xtext.diagnostics.DiagnosticMessage message) - Overrides:
 createDiagnosticin classorg.eclipse.xtext.linking.lazy.LazyLinkingResource
 
 -