public IMultiFilingService GetMultiFilingService() { CheckSession(); ICmisSpi spi = GetSpi(); return(spi.GetMultiFilingService()); }
public ITypeDefinition GetTypeDefinition(string repositoryId, string typeId, IExtensionsData extension) { ITypeDefinition result = null; bool hasExtension = (extension != null) && (extension.Extensions != null) && (extension.Extensions.Count > 0); TypeDefinitionCache cache = session.GetTypeDefinitionCache(); // if extension is not set, check the cache first if (!hasExtension) { result = cache.Get(repositoryId, typeId); if (result != null) { return(result); } } // it was not in the cache -> get the SPI and fetch the type definition ICmisSpi spi = session.GetSpi(); result = spi.GetRepositoryService().GetTypeDefinition(repositoryId, typeId, extension); // put it into the cache if (!hasExtension && (result != null)) { cache.Put(repositoryId, result); } return(result); }
public IRepositoryInfo GetRepositoryInfo(string repositoryId, IExtensionsData extension) { IRepositoryInfo result = null; bool hasExtension = (extension != null) && (extension.Extensions != null) && (extension.Extensions.Count > 0); RepositoryInfoCache cache = session.GetRepositoryInfoCache(); // if extension is not set, check the cache first if (!hasExtension) { result = cache.Get(repositoryId); if (result != null) { return(result); } } // it was not in the cache -> get the SPI and fetch the repository info ICmisSpi spi = session.GetSpi(); result = spi.GetRepositoryService().GetRepositoryInfo(repositoryId, extension); // put it into the cache if (!hasExtension) { cache.Put(result); } return(result); }
public IPolicyService GetPolicyService() { CheckSession(); ICmisSpi spi = GetSpi(); return(spi.GetPolicyService()); }
public void ClearRepositoryCache(string repositoryId) { CheckSession(); if (repositoryId == null) { return; } session.Lock(); try { RepositoryInfoCache repInfoCache = session.GetRepositoryInfoCache(); repInfoCache.Remove(repositoryId); TypeDefinitionCache typeDefCache = session.GetTypeDefinitionCache(); typeDefCache.Remove(repositoryId); ICmisSpi spi = GetSpi(); spi.ClearRepositoryCache(repositoryId); } finally { session.Unlock(); } }
public IDiscoveryService GetDiscoveryService() { CheckSession(); ICmisSpi spi = GetSpi(); return(spi.GetDiscoveryService()); }
public IRelationshipService GetRelationshipService() { CheckSession(); ICmisSpi spi = GetSpi(); return(spi.GetRelationshipService()); }
public IVersioningService GetVersioningService() { CheckSession(); ICmisSpi spi = GetSpi(); return(spi.GetVersioningService()); }
public IObjectService GetObjectService() { CheckSession(); ICmisSpi spi = GetSpi(); return(spi.GetObjectService()); }
public INavigationService GetNavigationService() { CheckSession(); ICmisSpi spi = GetSpi(); return(spi.GetNavigationService()); }
public ICmisSpi GetSpi() { Lock(); try { ICmisSpi spi = GetValue(SpiObject) as ICmisSpi; if (spi != null) { return(spi); } // ok, we have to create it... try { object spiObject; if (data.TryGetValue(SessionParameter.BindingSpiClass, out spiObject)) { string spiClassName = spiObject as string; if (spiClassName != null) { Type spiClass = Type.GetType(spiClassName); spi = (ICmisSpi)Activator.CreateInstance(spiClass); spi.initialize(this); } else { throw new CmisRuntimeException("SPI class is not set!"); } } else { throw new CmisRuntimeException("SPI class is not set!"); } } catch (CmisBaseException) { throw; } catch (Exception e) { throw new CmisRuntimeException("SPI cannot be initialized: " + e.Message, e); } // we have a SPI object -> put it into the session data[SpiObject] = spi; return(spi); } finally { Unlock(); } }
public void ClearAllCaches() { CheckSession(); lock (bindingLock) { session.PutValue(BindingSession.RepositoryInfoCache, new RepositoryInfoCache(session)); session.PutValue(BindingSession.TypeDefinitionCache, new TypeDefinitionCache(session)); ICmisSpi spi = GetSpi(); spi.ClearAllCaches(); } }
public IList <ITypeDefinitionContainer> GetTypeDescendants(string repositoryId, string typeId, long?depth, bool?includePropertyDefinitions, IExtensionsData extension) { IList <ITypeDefinitionContainer> result = null; bool hasExtension = (extension != null) && (extension.Extensions != null) && (extension.Extensions.Count > 0); // get the SPI and fetch the type definitions ICmisSpi spi = session.GetSpi(); result = spi.GetRepositoryService().GetTypeDescendants(repositoryId, typeId, depth, includePropertyDefinitions, extension); // put it into the cache if (!hasExtension && (includePropertyDefinitions ?? false) && (result != null)) { TypeDefinitionCache cache = session.GetTypeDefinitionCache(); AddToTypeCache(cache, repositoryId, result); } return(result); }
public IList <IRepositoryInfo> GetRepositoryInfos(IExtensionsData extension) { IList <IRepositoryInfo> result = null; bool hasExtension = (extension != null) && (extension.Extensions != null) && (extension.Extensions.Count > 0); // get the SPI and fetch the repository infos ICmisSpi spi = session.GetSpi(); result = spi.GetRepositoryService().GetRepositoryInfos(extension); // put it into the cache if (!hasExtension && (result != null)) { RepositoryInfoCache cache = session.GetRepositoryInfoCache(); foreach (IRepositoryInfo rid in result) { cache.Put(rid); } } return(result); }
public ITypeDefinitionList GetTypeChildren(string repositoryId, string typeId, bool?includePropertyDefinitions, long?maxItems, long?skipCount, IExtensionsData extension) { ITypeDefinitionList result = null; bool hasExtension = (extension != null) && (extension.Extensions != null) && (extension.Extensions.Count > 0); // get the SPI and fetch the type definitions ICmisSpi spi = session.GetSpi(); result = spi.GetRepositoryService().GetTypeChildren(repositoryId, typeId, includePropertyDefinitions, maxItems, skipCount, extension); // put it into the cache if (!hasExtension && (includePropertyDefinitions ?? false) && (result != null) && (result.List != null)) { TypeDefinitionCache cache = session.GetTypeDefinitionCache(); foreach (ITypeDefinition tdd in result.List) { cache.Put(repositoryId, tdd); } } return(result); }
public ITypeDefinition UpdateType(string repositoryId, ITypeDefinition type, IExtensionsData extension) { ICmisSpi spi = session.GetSpi(); return(spi.GetRepositoryService().UpdateType(repositoryId, type, extension)); }
public void DeleteType(string repositoryId, string typeId, IExtensionsData extension) { ICmisSpi spi = session.GetSpi(); spi.GetRepositoryService().DeleteType(repositoryId, typeId, extension); }