Package com._1c.g5.modeling.xml.linking
Class LazyLinkResolver
- java.lang.Object
-
- com._1c.g5.modeling.xml.linking.LazyLinkResolver
-
- All Implemented Interfaces:
ILazyLinker.ILazyLinkResolver
public class LazyLinkResolver extends Object implements ILazyLinker.ILazyLinkResolver
Используется для разрешения lazy-ссылок (т.е. proxy), созданных lazy-linker'ом.- See Also:
LazyLinkingResource
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
LazyLinkResolver.DiagnosticMessageContext
-
Constructor Summary
Constructors Constructor Description LazyLinkResolver()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
createAndAddDiagnostic(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EReference,INode> triple, org.eclipse.emf.ecore.resource.Resource resource)
protected org.eclipse.emf.ecore.resource.Resource.Diagnostic
createDiagnostic(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EReference,INode> triple, org.eclipse.xtext.diagnostics.DiagnosticMessage message)
protected org.eclipse.xtext.diagnostics.DiagnosticMessage
createDiagnosticMessage(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EReference,INode> triple)
protected org.eclipse.xtext.linking.ILinkingDiagnosticMessageProvider.ILinkingDiagnosticContext
createDiagnosticMessageContext(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EReference,INode> triple)
protected void
doResolveLazyCrossReference(org.eclipse.emf.ecore.resource.Resource resource, org.eclipse.emf.ecore.InternalEObject source, org.eclipse.emf.ecore.EStructuralFeature crossRef)
Заменяет все лэйзи прокси, на которые указываетcrossRef
на не лэйзи прокси или разрезолвленные объекты.protected List<org.eclipse.emf.ecore.resource.Resource.Diagnostic>
getDiagnosticList(org.eclipse.xtext.diagnostics.DiagnosticMessage message, org.eclipse.emf.ecore.resource.Resource resource)
protected String
getReferences(Quad<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EReference,INode,String> quad, LinkedHashSet<Quad<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EReference,INode,String>> resolving2)
protected org.eclipse.emf.ecore.EObject
handleCyclicResolution(Quad<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EReference,INode,String> quad)
boolean
isLazyLink(org.eclipse.emf.ecore.resource.Resource resource, String uriFragment)
Проверяет, соответствует ли заданный фрагмент формату lazy-ссылки.protected boolean
isPotentialLazyCrossReference(org.eclipse.emf.ecore.EStructuralFeature feature)
Возвращаетtrue
если данная фича может содержать прокси, которую необходимо разрезолвить.protected void
removeDiagnostic(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EReference,INode> triple, org.eclipse.emf.ecore.resource.Resource resource)
protected void
resolveLazyCrossReference(org.eclipse.emf.ecore.resource.Resource resource, org.eclipse.emf.ecore.InternalEObject source, org.eclipse.emf.ecore.EStructuralFeature crossRef)
Если указаннаяcrossRef
может указывать на лэйзи прокси, производится попытка их резолвинга.void
resolveLazyCrossReferences(org.eclipse.emf.ecore.resource.Resource resource, org.eclipse.xtext.util.CancelIndicator mon)
Производит резолвинг любой лэйзи ссылки в ресурсе.org.eclipse.emf.ecore.EObject
resolveLazyLink(org.eclipse.emf.ecore.resource.Resource resource, String uriFragment)
Разрешает lazy-ссылку по заданному фрагменту.void
setLinkingService(ILinkingService linkingService)
void
setUriEncoder(LazyUriEncoder uriEncoder)
-
-
-
Method Detail
-
isLazyLink
public boolean isLazyLink(org.eclipse.emf.ecore.resource.Resource resource, String uriFragment)
Description copied from interface:ILazyLinker.ILazyLinkResolver
Проверяет, соответствует ли заданный фрагмент формату lazy-ссылки.- Specified by:
isLazyLink
in interfaceILazyLinker.ILazyLinkResolver
- Parameters:
resource
- ресурс, выступающий в роли контектста (неnull
)uriFragment
- проверяемый фрагмент- Returns:
true
, если это lazy-ссылка
-
resolveLazyCrossReferences
public void resolveLazyCrossReferences(org.eclipse.emf.ecore.resource.Resource resource, org.eclipse.xtext.util.CancelIndicator mon)
Description copied from interface:ILazyLinker.ILazyLinkResolver
Производит резолвинг любой лэйзи ссылки в ресурсе.- Specified by:
resolveLazyCrossReferences
in interfaceILazyLinker.ILazyLinkResolver
- Parameters:
resource
- ресурс, выступающий в роли контектста (неnull
)mon
-CancelIndicator
может быть использован для остановки резолвинга (неnull
).
-
resolveLazyLink
public org.eclipse.emf.ecore.EObject resolveLazyLink(org.eclipse.emf.ecore.resource.Resource resource, String uriFragment)
Description copied from interface:ILazyLinker.ILazyLinkResolver
Разрешает lazy-ссылку по заданному фрагменту.- Specified by:
resolveLazyLink
in interfaceILazyLinker.ILazyLinkResolver
- Parameters:
resource
- ресурс, выступающий в роли контектста (неnull
)uriFragment
- фрагмент, который должен быть разрешен (неnull
)- Returns:
- результат разрешения lazy-ссылки или
null
, если ссылку не удалось разрешить - See Also:
Resource.getEObject(String)
-
setLinkingService
public void setLinkingService(ILinkingService linkingService)
-
setUriEncoder
public void setUriEncoder(LazyUriEncoder uriEncoder)
-
handleCyclicResolution
protected org.eclipse.emf.ecore.EObject handleCyclicResolution(Quad<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EReference,INode,String> quad)
-
resolveLazyCrossReference
protected void resolveLazyCrossReference(org.eclipse.emf.ecore.resource.Resource resource, org.eclipse.emf.ecore.InternalEObject source, org.eclipse.emf.ecore.EStructuralFeature crossRef)
Если указаннаяcrossRef
может указывать на лэйзи прокси, производится попытка их резолвинга.- See Also:
isPotentialLazyCrossReference(EStructuralFeature)
,#doResolveLazyCrossReference(InternalEObject, EStructuralFeature)
-
doResolveLazyCrossReference
protected void doResolveLazyCrossReference(org.eclipse.emf.ecore.resource.Resource resource, org.eclipse.emf.ecore.InternalEObject source, org.eclipse.emf.ecore.EStructuralFeature crossRef)
Заменяет все лэйзи прокси, на которые указываетcrossRef
на не лэйзи прокси или разрезолвленные объекты.
-
isPotentialLazyCrossReference
protected boolean isPotentialLazyCrossReference(org.eclipse.emf.ecore.EStructuralFeature feature)
Возвращаетtrue
если данная фича может содержать прокси, которую необходимо разрезолвить.
-
getReferences
protected String getReferences(Quad<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EReference,INode,String> quad, LinkedHashSet<Quad<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EReference,INode,String>> resolving2)
-
createAndAddDiagnostic
protected void createAndAddDiagnostic(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EReference,INode> triple, org.eclipse.emf.ecore.resource.Resource resource)
-
removeDiagnostic
protected void removeDiagnostic(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EReference,INode> triple, org.eclipse.emf.ecore.resource.Resource resource)
-
getDiagnosticList
protected List<org.eclipse.emf.ecore.resource.Resource.Diagnostic> getDiagnosticList(org.eclipse.xtext.diagnostics.DiagnosticMessage message, org.eclipse.emf.ecore.resource.Resource resource)
-
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,INode> triple, org.eclipse.xtext.diagnostics.DiagnosticMessage message)
-
createDiagnosticMessage
protected org.eclipse.xtext.diagnostics.DiagnosticMessage createDiagnosticMessage(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EReference,INode> triple)
-
createDiagnosticMessageContext
protected org.eclipse.xtext.linking.ILinkingDiagnosticMessageProvider.ILinkingDiagnosticContext createDiagnosticMessageContext(org.eclipse.xtext.util.Triple<org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.EReference,INode> triple)
-
-