protected virtual ModelingDocumentHandler CreateDocumentHandler(ModelingAdapterReference adapterReference, IServiceProvider serviceProvider) { string adapterReferenceStoreKey = this.GetAdapterReferenceStoreKey(adapterReference); Store sessionStore = SessionStoreCache.GetSessionStore(adapterReferenceStoreKey); ModelElement root = null; if (sessionStore != null) { root = this.FindStoreRoot(sessionStore, adapterReference, serviceProvider); } if (root == null) { root = this.CreateLoadStore(sessionStore, adapterReference, serviceProvider); if (root == null) { throw new AdapterCreationException(Microsoft.VisualStudio.TextTemplating.Modeling.ModelBusExceptionMessages.GetErrorLoadFailed(adapterReference.AbsoluteTargetPath)); } SessionStoreCache.CacheSessionStore(adapterReferenceStoreKey, root.Store); } if (root != null) { return(new VsTextTemplatingModelingDocumentHandler(adapterReference.AbsoluteTargetPath, root)); } return(null); }
public void ClearState() { DisposeAdapters(); SessionStoreCache.DisposeSessionStoreMap(); }