Class SessionCachingMetadataDomainRepository

    • Constructor Detail

      • SessionCachingMetadataDomainRepository

        public SessionCachingMetadataDomainRepository​(org.pentaho.metadata.repository.IMetadataDomainRepository delegate)
        Wraps the provided domain repository to provide session-based caching of domains.
    • Method Detail

      • forAllKeysInSession

        protected void forAllKeysInSession​(org.pentaho.platform.api.engine.IPentahoSession session,
                                           SessionCachingMetadataDomainRepository.CacheIteratorCallback callback)
        Calls the callback for every key in the cache region whose session id matches the provided session's id.
        Parameters:
        session - Session to use for matching keys
        callback - {@see CacheCallback}
      • getDomain

        public org.pentaho.metadata.model.Domain getDomain​(String id)
        Specified by:
        getDomain in interface org.pentaho.metadata.repository.IMetadataDomainRepository
      • reloadDomains

        public void reloadDomains()
        Specified by:
        reloadDomains in interface org.pentaho.metadata.repository.IMetadataDomainRepository
      • flushDomains

        public void flushDomains()
        Specified by:
        flushDomains in interface org.pentaho.metadata.repository.IMetadataDomainRepository
      • flushDomains

        protected void flushDomains​(org.pentaho.platform.api.engine.IPentahoSession session)
      • clearDomainIdsFromCache

        protected void clearDomainIdsFromCache()
        Remove domain ID cache for all sessions
      • clearDomainIdsFromCache

        protected void clearDomainIdsFromCache​(org.pentaho.platform.api.engine.IPentahoSession session)
        Remove domain ID cache for a given session
        Parameters:
        session -
      • generateDomainIdCacheKeyForSession

        protected String generateDomainIdCacheKeyForSession​(org.pentaho.platform.api.engine.IPentahoSession session)
      • storeDomain

        public void storeDomain​(org.pentaho.metadata.model.Domain domain,
                                boolean overwrite)
                         throws org.pentaho.metadata.repository.DomainIdNullException,
                                org.pentaho.metadata.repository.DomainAlreadyExistsException,
                                org.pentaho.metadata.repository.DomainStorageException
        Specified by:
        storeDomain in interface org.pentaho.metadata.repository.IMetadataDomainRepository
        Throws:
        org.pentaho.metadata.repository.DomainIdNullException
        org.pentaho.metadata.repository.DomainAlreadyExistsException
        org.pentaho.metadata.repository.DomainStorageException
      • removeModel

        public void removeModel​(String domainId,
                                String modelId)
                         throws org.pentaho.metadata.repository.DomainIdNullException,
                                org.pentaho.metadata.repository.DomainStorageException
        Specified by:
        removeModel in interface org.pentaho.metadata.repository.IMetadataDomainRepository
        Throws:
        org.pentaho.metadata.repository.DomainIdNullException
        org.pentaho.metadata.repository.DomainStorageException
      • getDomainIds

        public Set<String> getDomainIds()
        Specified by:
        getDomainIds in interface org.pentaho.metadata.repository.IMetadataDomainRepository
      • generateRowLevelSecurityConstraint

        public String generateRowLevelSecurityConstraint​(org.pentaho.metadata.model.LogicalModel model)
        Specified by:
        generateRowLevelSecurityConstraint in interface org.pentaho.metadata.repository.IMetadataDomainRepository
      • hasAccess

        public boolean hasAccess​(int accessType,
                                 org.pentaho.metadata.model.concept.IConcept aclHolder)
        Specified by:
        hasAccess in interface org.pentaho.metadata.repository.IMetadataDomainRepository
      • onLogout

        public void onLogout​(org.pentaho.platform.api.engine.IPentahoSession session)
        Specified by:
        onLogout in interface org.pentaho.platform.api.engine.ILogoutListener
      • storeDomain

        public void storeDomain​(InputStream inputStream,
                                String domainId,
                                boolean overwrite,
                                org.pentaho.platform.api.repository2.unified.RepositoryFileAcl acl)
                         throws org.pentaho.metadata.repository.DomainIdNullException,
                                org.pentaho.metadata.repository.DomainAlreadyExistsException,
                                org.pentaho.metadata.repository.DomainStorageException
        Specified by:
        storeDomain in interface IAclAwarePentahoMetadataDomainRepositoryImporter
        Throws:
        org.pentaho.metadata.repository.DomainIdNullException
        org.pentaho.metadata.repository.DomainAlreadyExistsException
        org.pentaho.metadata.repository.DomainStorageException
      • storeDomain

        public void storeDomain​(InputStream inputStream,
                                String domainId,
                                boolean overwrite)
                         throws org.pentaho.metadata.repository.DomainIdNullException,
                                org.pentaho.metadata.repository.DomainAlreadyExistsException,
                                org.pentaho.metadata.repository.DomainStorageException
        Specified by:
        storeDomain in interface IPentahoMetadataDomainRepositoryImporter
        Throws:
        org.pentaho.metadata.repository.DomainIdNullException
        org.pentaho.metadata.repository.DomainAlreadyExistsException
        org.pentaho.metadata.repository.DomainStorageException