public class SessionCachingMetadataDomainRepository extends Object implements org.pentaho.metadata.repository.IMetadataDomainRepository, IPentahoMetadataDomainRepositoryExporter, org.pentaho.platform.api.engine.ILogoutListener, IAclAwarePentahoMetadataDomainRepositoryImporter, IModelAnnotationsAwareMetadataDomainRepositoryImporter
IMetadataDomainRepository.| Modifier and Type | Class and Description |
|---|---|
protected static interface |
SessionCachingMetadataDomainRepository.CacheIteratorCallback
Simple callback interface to facilitate iterating over cache keys
|
static class |
SessionCachingMetadataDomainRepository.CacheKey
this as a public class so that if necessary someone can get access to a session key and clear the cache in their
own way via javascript rule / etc
|
| Modifier and Type | Field and Description |
|---|---|
static String |
CACHE_REGION
Public so others know where we're caching our objects
|
protected SessionCachingMetadataDomainRepository.CacheIteratorCallback |
REMOVE_ALL_CALLBACK
Removes all keys it encounters from the known cache region
|
ACCESS_TYPE_ADMIN, ACCESS_TYPE_DELETE, ACCESS_TYPE_READ, ACCESS_TYPE_SCHEMA_ADMIN, ACCESS_TYPE_UPDATE, ACCESS_TYPE_WRITEANNOTATIONS_FILE_ID_POSTFIX, PROPERTY_NAME_ANNOTATIONS| Constructor and Description |
|---|
SessionCachingMetadataDomainRepository(org.pentaho.metadata.repository.IMetadataDomainRepository delegate)
Wraps the provided domain repository to provide session-based caching of domains.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addLocalizationFile(String domainId,
String locale,
InputStream inputStream,
boolean overwrite) |
protected void |
clearDomainIdsFromCache()
Remove domain ID cache for all sessions
|
protected void |
clearDomainIdsFromCache(org.pentaho.platform.api.engine.IPentahoSession session)
Remove domain ID cache for a given session
|
void |
flushDomains() |
protected void |
flushDomains(org.pentaho.platform.api.engine.IPentahoSession session) |
protected void |
forAllKeys(SessionCachingMetadataDomainRepository.CacheIteratorCallback callback)
Calls the callback for every key in the cache region
|
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.
|
protected String |
generateDomainIdCacheKeyForSession(org.pentaho.platform.api.engine.IPentahoSession session) |
String |
generateRowLevelSecurityConstraint(org.pentaho.metadata.model.LogicalModel model) |
org.pentaho.platform.api.repository2.unified.RepositoryFileAcl |
getAclFor(String domainId) |
org.pentaho.metadata.model.Domain |
getDomain(String id) |
Map<String,InputStream> |
getDomainFilesData(String domainId) |
Set<String> |
getDomainIds() |
boolean |
hasAccess(int accessType,
org.pentaho.metadata.model.concept.IConcept aclHolder) |
boolean |
hasAccessFor(String domainId) |
String |
loadAnnotationsXml(String domainId) |
void |
onLogout(org.pentaho.platform.api.engine.IPentahoSession session) |
void |
reloadDomains() |
void |
removeDomain(String domainId) |
void |
removeModel(String domainId,
String modelId) |
void |
setAclFor(String domainId,
org.pentaho.platform.api.repository2.unified.RepositoryFileAcl acl) |
void |
storeAnnotationsXml(String domainId,
String annotationsXml) |
void |
storeDomain(org.pentaho.metadata.model.Domain domain,
boolean overwrite) |
void |
storeDomain(InputStream inputStream,
String domainId,
boolean overwrite) |
void |
storeDomain(InputStream inputStream,
String domainId,
boolean overwrite,
org.pentaho.platform.api.repository2.unified.RepositoryFileAcl acl) |
public static String CACHE_REGION
protected final SessionCachingMetadataDomainRepository.CacheIteratorCallback REMOVE_ALL_CALLBACK
public SessionCachingMetadataDomainRepository(org.pentaho.metadata.repository.IMetadataDomainRepository delegate)
protected void forAllKeys(SessionCachingMetadataDomainRepository.CacheIteratorCallback callback)
callback - CacheCallbackprotected void forAllKeysInSession(org.pentaho.platform.api.engine.IPentahoSession session,
SessionCachingMetadataDomainRepository.CacheIteratorCallback callback)
session - Session to use for matching keyscallback - CacheCallbackpublic org.pentaho.metadata.model.Domain getDomain(String id)
getDomain in interface org.pentaho.metadata.repository.IMetadataDomainRepositorypublic void reloadDomains()
reloadDomains in interface org.pentaho.metadata.repository.IMetadataDomainRepositorypublic void flushDomains()
flushDomains in interface org.pentaho.metadata.repository.IMetadataDomainRepositoryprotected void flushDomains(org.pentaho.platform.api.engine.IPentahoSession session)
protected void clearDomainIdsFromCache()
protected void clearDomainIdsFromCache(org.pentaho.platform.api.engine.IPentahoSession session)
session - protected String generateDomainIdCacheKeyForSession(org.pentaho.platform.api.engine.IPentahoSession session)
public void removeDomain(String domainId)
removeDomain in interface org.pentaho.metadata.repository.IMetadataDomainRepositoryremoveDomain in interface IPentahoMetadataDomainRepositoryImporterpublic 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
storeDomain in interface org.pentaho.metadata.repository.IMetadataDomainRepositoryorg.pentaho.metadata.repository.DomainIdNullExceptionorg.pentaho.metadata.repository.DomainAlreadyExistsExceptionorg.pentaho.metadata.repository.DomainStorageExceptionpublic void removeModel(String domainId, String modelId) throws org.pentaho.metadata.repository.DomainIdNullException, org.pentaho.metadata.repository.DomainStorageException
removeModel in interface org.pentaho.metadata.repository.IMetadataDomainRepositoryorg.pentaho.metadata.repository.DomainIdNullExceptionorg.pentaho.metadata.repository.DomainStorageExceptionpublic Set<String> getDomainIds()
getDomainIds in interface org.pentaho.metadata.repository.IMetadataDomainRepositorypublic String generateRowLevelSecurityConstraint(org.pentaho.metadata.model.LogicalModel model)
generateRowLevelSecurityConstraint in interface org.pentaho.metadata.repository.IMetadataDomainRepositorypublic boolean hasAccess(int accessType,
org.pentaho.metadata.model.concept.IConcept aclHolder)
hasAccess in interface org.pentaho.metadata.repository.IMetadataDomainRepositorypublic void onLogout(org.pentaho.platform.api.engine.IPentahoSession session)
onLogout in interface org.pentaho.platform.api.engine.ILogoutListenerpublic Map<String,InputStream> getDomainFilesData(String domainId)
getDomainFilesData in interface IPentahoMetadataDomainRepositoryExporterpublic 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
storeDomain in interface IAclAwarePentahoMetadataDomainRepositoryImporterorg.pentaho.metadata.repository.DomainIdNullExceptionorg.pentaho.metadata.repository.DomainAlreadyExistsExceptionorg.pentaho.metadata.repository.DomainStorageExceptionpublic void setAclFor(String domainId, org.pentaho.platform.api.repository2.unified.RepositoryFileAcl acl)
setAclFor in interface IAclAwarePentahoMetadataDomainRepositoryImporterpublic org.pentaho.platform.api.repository2.unified.RepositoryFileAcl getAclFor(String domainId)
getAclFor in interface IAclAwarePentahoMetadataDomainRepositoryImporterpublic boolean hasAccessFor(String domainId)
hasAccessFor in interface IAclAwarePentahoMetadataDomainRepositoryImporterpublic void storeDomain(InputStream inputStream, String domainId, boolean overwrite) throws org.pentaho.metadata.repository.DomainIdNullException, org.pentaho.metadata.repository.DomainAlreadyExistsException, org.pentaho.metadata.repository.DomainStorageException
storeDomain in interface IPentahoMetadataDomainRepositoryImporterorg.pentaho.metadata.repository.DomainIdNullExceptionorg.pentaho.metadata.repository.DomainAlreadyExistsExceptionorg.pentaho.metadata.repository.DomainStorageExceptionpublic void addLocalizationFile(String domainId, String locale, InputStream inputStream, boolean overwrite) throws org.pentaho.metadata.repository.DomainStorageException
addLocalizationFile in interface IPentahoMetadataDomainRepositoryImporterorg.pentaho.metadata.repository.DomainStorageExceptionpublic String loadAnnotationsXml(String domainId)
loadAnnotationsXml in interface IModelAnnotationsAwareMetadataDomainRepositoryImporterpublic void storeAnnotationsXml(String domainId, String annotationsXml)
storeAnnotationsXml in interface IModelAnnotationsAwareMetadataDomainRepositoryImporterCopyright © 2021 Hitachi Vantara. All rights reserved.