ALF-4106 AuditService REST API: Added 'dataTrigger' to 'RecordValue'

- Prevents RecordValue elements from activating unnecessarily
 - Without any entries, everything behaves as before i.e. 'RecordValue' triggers on data entries at the current path


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@22197 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2010-09-02 18:11:43 +00:00
parent 797930fae1
commit 7594b32677
17 changed files with 68 additions and 238 deletions

View File

@@ -290,22 +290,33 @@ public class AuditApplication
*/
public static class DataExtractorDefinition
{
private final String dataTrigger;
private final String dataSource;
private final String dataTarget;
private final DataExtractor dataExtractor;
/**
* @param dataTrigger the data path that must exist for this extractor to be triggered
* @param dataSource the path to get data from
* @param dataTarget the path to write data to
* @param dataExtractor the implementation to use
*/
public DataExtractorDefinition(String dataSource, String dataTarget, DataExtractor dataExtractor)
public DataExtractorDefinition(String dataTrigger, String dataSource, String dataTarget, DataExtractor dataExtractor)
{
this.dataTrigger = dataTrigger;
this.dataSource = dataSource;
this.dataTarget = dataTarget;
this.dataExtractor = dataExtractor;
}
/**
* The data path that must exist for the extractor to be triggered.
*/
public String getDataTrigger()
{
return dataTrigger;
}
public String getDataSource()
{
return dataSource;
@@ -442,8 +453,14 @@ public class AuditApplication
{
sourcePath = currentPath;
}
// The extractor may be triggered by data from elsewhere
String dataTrigger = element.getDataTrigger();
if (dataTrigger == null)
{
dataTrigger = currentPath;
}
// Store the extractor definition
DataExtractorDefinition extractorDef = new DataExtractorDefinition(sourcePath, extractorPath, extractor);
DataExtractorDefinition extractorDef = new DataExtractorDefinition(dataTrigger, sourcePath, extractorPath, extractor);
dataExtractors.add(extractorDef);
}