Class TagScopePropertyMethodInterceptor

java.lang.Object
org.alfresco.repo.tagging.TagScopePropertyMethodInterceptor
All Implemented Interfaces:
org.aopalliance.aop.Advice, org.aopalliance.intercept.Interceptor, org.aopalliance.intercept.MethodInterceptor

public class TagScopePropertyMethodInterceptor extends Object implements org.aopalliance.intercept.MethodInterceptor
This class is an interceptor of the NodeService that converts the content of the tagScopeCache property into a pseudo, multi-value text property (cm:tagScopeSummary) with each value of the spoofed property taking the form "=". This interceptor can be enabled by calling its static setEnabled(Boolean) method. It is enabled by default. When enabled, a call to getProperties for a node that has a cm:tagScopeCache property will include the calculated cm:tagScopeSummary property. A call to getProperty specifying cm:tagScopeSummary as the property name will return the calculated property value or null if the node has no cm:tagScopeCache property value.
Author:
Brian Remmington
  • Constructor Details

    • TagScopePropertyMethodInterceptor

      public TagScopePropertyMethodInterceptor()
  • Method Details

    • setContentService

      public void setContentService(ContentService contentService)
    • setNodeService

      public void setNodeService(NodeService nodeService)
    • setCache

      public void setCache(SimpleCache<String,List<String>> cache)
    • invoke

      public Object invoke(org.aopalliance.intercept.MethodInvocation invocation) throws Throwable
      Specified by:
      invoke in interface org.aopalliance.intercept.MethodInterceptor
      Throws:
      Throwable
    • getTagSummary

      protected List<String> getTagSummary(NodeRef nodeRef, Map<QName,Serializable> allNodeProperties)
      Given a NodeRef and, optionally, the property map of that node, this operation establishes whether the node is a TagScope node, and returns the appropriate value of the cm:tagScopeSummary property.
      Parameters:
      nodeRef - NodeRef
      allNodeProperties - Optional. If the caller has a current property map for the node being queried then supplying it here saves a little time. This argument is allowed to be null.
    • getEnabled

      public static final Boolean getEnabled()
    • setEnabled

      public static final Boolean setEnabled(Boolean enable)
      Allows the functionality of this interceptor to be enabled and disabled on a thread-by-thread basis. The caller should ensure that the value is reset to its prior setting once it has finished using the thread of execution.
      Parameters:
      enable - Boolean
      Returns:
      The setting prior to invoking this operation.