Transaction cache on BaseEvaluator.evaluate method

This commit is contained in:
rwetherall
2017-06-27 13:13:25 +10:00
parent 875fd314b2
commit a5409044c5
2 changed files with 28 additions and 8 deletions

View File

@@ -38,6 +38,7 @@
<property name="filePlanService" ref="FilePlanService" />
<property name="dispositionService" ref="DispositionService" />
<property name="recordFolderService" ref="RecordFolderService" />
<property name="transactionalResourceHelper" ref="rm.transactionalResourceHelper" />
</bean>
<bean id="jsonConversionComponent.baseIndicator"

View File

@@ -40,6 +40,7 @@ import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
import org.alfresco.module.org_alfresco_module_rm.recordfolder.RecordFolderService;
import org.alfresco.module.org_alfresco_module_rm.util.TransactionalResourceHelper;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.security.AccessStatus;
@@ -84,6 +85,9 @@ public abstract class BaseEvaluator implements RecordsManagementModel
/** Record folder service */
protected RecordFolderService recordFolderService;
/** transactional resource helper */
protected TransactionalResourceHelper transactionalResourceHelper;
/**
* @param jsonConversionComponent json conversion component
@@ -148,6 +152,14 @@ public abstract class BaseEvaluator implements RecordsManagementModel
{
this.recordFolderService = recordFolderService;
}
/**
* @param transactionalResourceHelper transactional resource helper
*/
public void setTransactionalResourceHelper(TransactionalResourceHelper transactionalResourceHelper)
{
this.transactionalResourceHelper = transactionalResourceHelper;
}
/**
* @param name
@@ -217,17 +229,24 @@ public abstract class BaseEvaluator implements RecordsManagementModel
*/
public boolean evaluate(NodeRef nodeRef)
{
boolean result = false;
// Check that we are dealing with the correct kind of RM object
if ((kinds == null || checkKinds(nodeRef)) &&
// Check we have the required capabilities
(capabilities == null || checkCapabilities(nodeRef)))
Map<NodeRef, Boolean> results = transactionalResourceHelper.getMap("BaseEvaluator.evaluate");
if (!results.containsKey(nodeRef))
{
result = evaluateImpl(nodeRef);
boolean result = false;
// Check that we are dealing with the correct kind of RM object
if ((kinds == null || checkKinds(nodeRef)) &&
// Check we have the required capabilities
(capabilities == null || checkCapabilities(nodeRef)))
{
result = evaluateImpl(nodeRef);
}
results.put(nodeRef, result);
}
return result;
return results.get(nodeRef);
}
/**