Class AlfrescoRepositoryImpl<T extends RepositoryEntity>

java.lang.Object
fr.becpg.repo.repository.impl.AlfrescoRepositoryImpl<T>
All Implemented Interfaces:
AlfrescoRepository<T>, CrudRepository<T,org.alfresco.service.cmr.repository.NodeRef>, org.alfresco.repo.node.NodeServicePolicies.OnAddAspectPolicy, org.alfresco.repo.node.NodeServicePolicies.OnCreateAssociationPolicy, org.alfresco.repo.node.NodeServicePolicies.OnDeleteAssociationPolicy, org.alfresco.repo.node.NodeServicePolicies.OnDeleteNodePolicy, org.alfresco.repo.node.NodeServicePolicies.OnRemoveAspectPolicy, org.alfresco.repo.node.NodeServicePolicies.OnUpdatePropertiesPolicy, org.alfresco.repo.policy.AssociationPolicy, org.alfresco.repo.policy.ClassPolicy, org.alfresco.repo.policy.Policy, org.alfresco.util.cache.RefreshableCacheListener, org.springframework.beans.factory.InitializingBean

@Repository("alfrescoRepository") public class AlfrescoRepositoryImpl<T extends RepositoryEntity> extends Object implements AlfrescoRepository<T>, org.alfresco.repo.node.NodeServicePolicies.OnDeleteNodePolicy, org.alfresco.repo.node.NodeServicePolicies.OnUpdatePropertiesPolicy, org.alfresco.repo.node.NodeServicePolicies.OnAddAspectPolicy, org.alfresco.repo.node.NodeServicePolicies.OnRemoveAspectPolicy, org.alfresco.util.cache.RefreshableCacheListener, org.springframework.beans.factory.InitializingBean, org.alfresco.repo.node.NodeServicePolicies.OnCreateAssociationPolicy, org.alfresco.repo.node.NodeServicePolicies.OnDeleteAssociationPolicy

AlfrescoRepositoryImpl class.

Version:
$Id: $Id
Author:
matthieu
  • Field Details

    • nodeService

      @Autowired private org.alfresco.service.cmr.repository.NodeService nodeService
    • repositoryNodeService

      @Autowired @Qualifier("repositoryNodeService") private org.alfresco.service.cmr.repository.NodeService repositoryNodeService
    • logger

      private static final org.apache.commons.logging.Log logger
    • repositoryEntityDefReader

      @Autowired private RepositoryEntityDefReader<T extends RepositoryEntity> repositoryEntityDefReader
    • entityListDAO

      @Autowired private EntityListDAO entityListDAO
    • entityDictionaryService

      @Autowired private EntityDictionaryService entityDictionaryService
    • associationService

      @Autowired private AssociationService associationService
    • cache

      @Autowired @Qualifier("becpgRepositoryCache") private org.alfresco.repo.cache.TransactionalCache<org.alfresco.service.cmr.repository.NodeRef,T extends RepositoryEntity> cache
    • charactCache

      @Autowired @Qualifier("becpgCharactCache") private org.alfresco.repo.cache.TransactionalCache<org.alfresco.service.cmr.repository.NodeRef,T extends RepositoryEntity> charactCache
    • policyComponent

      @Autowired @Qualifier("policyComponent") private org.alfresco.repo.policy.PolicyComponent policyComponent
    • asynchronouslyRefreshedCacheRegistry

      @Autowired private org.alfresco.util.cache.AsynchronouslyRefreshedCacheRegistry asynchronouslyRefreshedCacheRegistry
  • Constructor Details

    • AlfrescoRepositoryImpl

      public AlfrescoRepositoryImpl()
  • Method Details

    • init

      @PostConstruct public void init()

      init.

    • onDeleteNode

      public void onDeleteNode(org.alfresco.service.cmr.repository.ChildAssociationRef associationRef, boolean arg1)
      Specified by:
      onDeleteNode in interface org.alfresco.repo.node.NodeServicePolicies.OnDeleteNodePolicy
    • onUpdateProperties

      public void onUpdateProperties(org.alfresco.service.cmr.repository.NodeRef nodeRef, Map<org.alfresco.service.namespace.QName,Serializable> before, Map<org.alfresco.service.namespace.QName,Serializable> after)
      Specified by:
      onUpdateProperties in interface org.alfresco.repo.node.NodeServicePolicies.OnUpdatePropertiesPolicy
    • onAddAspect

      public void onAddAspect(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName aspectTypeQName)
      Specified by:
      onAddAspect in interface org.alfresco.repo.node.NodeServicePolicies.OnAddAspectPolicy
    • onRemoveAspect

      public void onRemoveAspect(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName aspectTypeQName)
      Specified by:
      onRemoveAspect in interface org.alfresco.repo.node.NodeServicePolicies.OnRemoveAspectPolicy
    • onCreateAssociation

      public void onCreateAssociation(org.alfresco.service.cmr.repository.AssociationRef nodeAssocRef)
      Specified by:
      onCreateAssociation in interface org.alfresco.repo.node.NodeServicePolicies.OnCreateAssociationPolicy
    • onDeleteAssociation

      public void onDeleteAssociation(org.alfresco.service.cmr.repository.AssociationRef nodeAssocRef)
      Specified by:
      onDeleteAssociation in interface org.alfresco.repo.node.NodeServicePolicies.OnDeleteAssociationPolicy
    • purgeCache

      private void purgeCache(org.alfresco.service.cmr.repository.NodeRef nodeRef)
    • create

      public T create(org.alfresco.service.cmr.repository.NodeRef parentNodeRef, T entity)

      create.

      Specified by:
      create in interface AlfrescoRepository<T extends RepositoryEntity>
      Parameters:
      parentNodeRef - a NodeRef object.
      entity - a T object.
      Returns:
      a T object.
    • save

      public T save(T entity)
      Saves a given entity. Use the returned instance for further operations as the save operation might have changed the entity instance completely.
      Specified by:
      save in interface CrudRepository<T extends RepositoryEntity,org.alfresco.service.cmr.repository.NodeRef>
      Parameters:
      entity - a T object.
      Returns:
      the saved entity
    • isDirty

      public boolean isDirty(T entity)

      isDirty.

      Specified by:
      isDirty in interface AlfrescoRepository<T extends RepositoryEntity>
      Parameters:
      entity - a T object.
      Returns:
      a boolean.
    • normalizedEquals

      private boolean normalizedEquals(Object a, Object b)
    • saveAspects

      private void saveAspects(T entity)
    • extractProperties

      private Map<org.alfresco.service.namespace.QName,Serializable> extractProperties(T entity)
    • createCollisionSafeHashCode

      private long createCollisionSafeHashCode(T entity)
    • saveAssociations

      private void saveAssociations(T entity)
    • getOrCreateNodeRef

      private org.alfresco.service.cmr.repository.NodeRef getOrCreateNodeRef(Map.Entry<org.alfresco.service.namespace.QName,T> entry, T entity)
    • saveDataLists

      private void saveDataLists(T entity)
    • saveDataListViews

      private void saveDataListViews(T entity)
    • getOrCreateDataListContainer

      public org.alfresco.service.cmr.repository.NodeRef getOrCreateDataListContainer(T entity)

      getOrCreateDataListContainer.

      Specified by:
      getOrCreateDataListContainer in interface AlfrescoRepository<T extends RepositoryEntity>
      Parameters:
      entity - a T object.
      Returns:
      a NodeRef object.
    • saveDataList

      public void saveDataList(org.alfresco.service.cmr.repository.NodeRef listContainerNodeRef, org.alfresco.service.namespace.QName dataListContainerType, List<? extends RepositoryEntity> dataList)

      saveDataList.

      Specified by:
      saveDataList in interface AlfrescoRepository<T extends RepositoryEntity>
      Parameters:
      listContainerNodeRef - a NodeRef object.
      dataListContainerType - a QName object.
      dataList - a List object.
    • saveDataList

      public void saveDataList(org.alfresco.service.cmr.repository.NodeRef listContainerNodeRef, org.alfresco.service.namespace.QName dataListContainerType, String dataListName, List<? extends RepositoryEntity> dataList)

      saveDataList.

      Specified by:
      saveDataList in interface AlfrescoRepository<T extends RepositoryEntity>
      Parameters:
      listContainerNodeRef - a NodeRef object.
      dataListContainerType - a QName object.
      dataListName - a String object.
      dataList - a List object.
    • save

      public Iterable<T> save(Iterable<? extends T> entities)
      Saves all given entities.
      Specified by:
      save in interface CrudRepository<T extends RepositoryEntity,org.alfresco.service.cmr.repository.NodeRef>
      Parameters:
      entities - a Iterable object.
      Returns:
      a Iterable object.
    • findOne

      public T findOne(org.alfresco.service.cmr.repository.NodeRef id)
      Retrives an entity by its primary key.
      Specified by:
      findOne in interface CrudRepository<T extends RepositoryEntity,org.alfresco.service.cmr.repository.NodeRef>
      Parameters:
      id - a ID object.
      Returns:
      the entity with the given primary key or null if none found
    • findOne

      private T findOne(org.alfresco.service.cmr.repository.NodeRef id, AlfrescoRepositoryImpl.CacheType cacheType, Map<org.alfresco.service.cmr.repository.NodeRef,RepositoryEntity> localCache)
    • storeInCache

      private void storeInCache(org.alfresco.service.cmr.repository.NodeRef id, T entity, Map<org.alfresco.service.cmr.repository.NodeRef,RepositoryEntity> localCache, AlfrescoRepositoryImpl.CacheType cacheType)
    • getFormCache

      private T getFormCache(org.alfresco.service.cmr.repository.NodeRef id, Map<org.alfresco.service.cmr.repository.NodeRef,RepositoryEntity> localCache, AlfrescoRepositoryImpl.CacheType cacheType) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
      Throws:
      IllegalAccessException
      InvocationTargetException
      NoSuchMethodException
    • loadAspects

      private void loadAspects(T entity)
    • loadDataListView

      private <R> R loadDataListView(T entity, String datalistName, Class<R> returnType) throws InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException
      Throws:
      InstantiationException
      IllegalAccessException
      InvocationTargetException
      NoSuchMethodException
    • createDataList

      private List<T> createDataList(T entity, PropertyDescriptor pd, String datalistName, org.alfresco.service.namespace.QName datalistQname)
    • loadAssoc

      private void loadAssoc(T entity, PropertyDescriptor pd, Method readMethod, Map<org.alfresco.service.cmr.repository.NodeRef,RepositoryEntity> localCache, boolean multiple, boolean isChildAssoc) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
      Throws:
      IllegalAccessException
      InvocationTargetException
      NoSuchMethodException
    • loadProperties

      private void loadProperties(T entity, PropertyDescriptor pd, Method readMethod, Map<org.alfresco.service.namespace.QName,Serializable> properties, Map<org.alfresco.service.cmr.repository.NodeRef,RepositoryEntity> localCache) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
      Throws:
      IllegalAccessException
      InvocationTargetException
      NoSuchMethodException
    • loadDataList

      public List<T> loadDataList(org.alfresco.service.cmr.repository.NodeRef entityNodeRef, String datalistName, org.alfresco.service.namespace.QName datalistQname)

      loadDataList.

      Specified by:
      loadDataList in interface AlfrescoRepository<T extends RepositoryEntity>
      Parameters:
      entityNodeRef - a NodeRef object.
      datalistName - a String object
      datalistQname - a QName object.
      Returns:
      a List object.
    • loadDataList

      public List<T> loadDataList(org.alfresco.service.cmr.repository.NodeRef dataListNodeRef, org.alfresco.service.namespace.QName datalistQname)

      loadDataList.

      Specified by:
      loadDataList in interface AlfrescoRepository<T extends RepositoryEntity>
      Parameters:
      dataListNodeRef - a NodeRef object
      datalistQname - a QName object
      Returns:
      a List object
    • loadDataList

      private List<T> loadDataList(org.alfresco.service.cmr.repository.NodeRef dataListNodeRef, org.alfresco.service.namespace.QName datalistQname, Map<org.alfresco.service.cmr.repository.NodeRef,RepositoryEntity> localCache)
    • exists

      public boolean exists(org.alfresco.service.cmr.repository.NodeRef id)
      Returns whether an entity with the given id exists.
      Specified by:
      exists in interface CrudRepository<T extends RepositoryEntity,org.alfresco.service.cmr.repository.NodeRef>
      Parameters:
      id - a ID object.
      Returns:
      true if an entity with the given id exists, alse otherwise
    • findAll

      public Iterable<T> findAll()
      Returns all instances of the type.
      Specified by:
      findAll in interface CrudRepository<T extends RepositoryEntity,org.alfresco.service.cmr.repository.NodeRef>
      Returns:
      all entities
    • count

      public long count()
      Returns the number of entities available.
      Specified by:
      count in interface CrudRepository<T extends RepositoryEntity,org.alfresco.service.cmr.repository.NodeRef>
      Returns:
      the number of entities
    • delete

      public void delete(org.alfresco.service.cmr.repository.NodeRef id)
      Deletes the entity with the given id.
      Specified by:
      delete in interface CrudRepository<T extends RepositoryEntity,org.alfresco.service.cmr.repository.NodeRef>
      Parameters:
      id - a ID object.
    • delete

      public void delete(T entity)
      Deletes a given entity.
      Specified by:
      delete in interface CrudRepository<T extends RepositoryEntity,org.alfresco.service.cmr.repository.NodeRef>
      Parameters:
      entity - a T object.
    • delete

      public void delete(Iterable<? extends T> entities)
      Deletes the given entities.
      Specified by:
      delete in interface CrudRepository<T extends RepositoryEntity,org.alfresco.service.cmr.repository.NodeRef>
      Parameters:
      entities - a Iterable object.
    • deleteAll

      public void deleteAll()
      Deletes all entities managed by the repository.
      Specified by:
      deleteAll in interface CrudRepository<T extends RepositoryEntity,org.alfresco.service.cmr.repository.NodeRef>
    • hasDataList

      public boolean hasDataList(RepositoryEntity entity, org.alfresco.service.namespace.QName datalistContainerQname)

      hasDataList.

      Specified by:
      hasDataList in interface AlfrescoRepository<T extends RepositoryEntity>
      Parameters:
      entity - a RepositoryEntity object.
      datalistContainerQname - a QName object.
      Returns:
      a boolean.
    • hasDataList

      public boolean hasDataList(org.alfresco.service.cmr.repository.NodeRef entityNodeRef, org.alfresco.service.namespace.QName datalistContainerQname)

      hasDataList.

      Specified by:
      hasDataList in interface AlfrescoRepository<T extends RepositoryEntity>
      Parameters:
      entityNodeRef - a NodeRef object.
      datalistContainerQname - a QName object.
      Returns:
      a boolean.
    • hasDataList

      public boolean hasDataList(org.alfresco.service.cmr.repository.NodeRef entityNodeRef, String datalistName)

      hasDataList.

      Specified by:
      hasDataList in interface AlfrescoRepository<T extends RepositoryEntity>
      Parameters:
      entityNodeRef - a NodeRef object.
      datalistName - a String object.
      Returns:
      a boolean.
    • isRegisteredType

      public boolean isRegisteredType(org.alfresco.service.namespace.QName type)

      isRegisteredType.

      Specified by:
      isRegisteredType in interface AlfrescoRepository<T extends RepositoryEntity>
      Parameters:
      type - a QName object.
      Returns:
      a boolean.
    • getList

      public <R extends RepositoryEntity> List<R> getList(RepositoryEntity entity, Class<R> clazz)

      getList.

      Specified by:
      getList in interface AlfrescoRepository<T extends RepositoryEntity>
      Type Parameters:
      R - a R object.
      Parameters:
      entity - a RepositoryEntity object.
      clazz - a Class object.
      Returns:
      a List object.
    • getList

      public <R extends RepositoryEntity> List<R> getList(RepositoryEntity entity, org.alfresco.service.namespace.QName datalistContainerQname, org.alfresco.service.namespace.QName datalistQname)

      getList.

      Specified by:
      getList in interface AlfrescoRepository<T extends RepositoryEntity>
      Type Parameters:
      R - a R object.
      Parameters:
      entity - a RepositoryEntity object.
      datalistContainerQname - a QName object.
      datalistQname - a QName object.
      Returns:
      a List object.
    • removeProperties

      private void removeProperties(org.alfresco.service.cmr.repository.NodeRef nodeRef, Set<org.alfresco.service.namespace.QName> qnames)
    • onRefreshableCacheEvent

      public void onRefreshableCacheEvent(org.alfresco.util.cache.RefreshableCacheEvent refreshableCacheEvent)
      Specified by:
      onRefreshableCacheEvent in interface org.alfresco.util.cache.RefreshableCacheListener
    • getCacheId

      public String getCacheId()
      Specified by:
      getCacheId in interface org.alfresco.util.cache.RefreshableCacheListener
    • afterPropertiesSet

      public void afterPropertiesSet() throws Exception
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
      Throws:
      Exception
    • clearCaches

      public void clearCaches(String id)

      clearCaches.

      Specified by:
      clearCaches in interface AlfrescoRepository<T extends RepositoryEntity>
      Parameters:
      id - a String object