Fixed minor issues (Trailing Comment) reported in Sonar

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@85865 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Tuna Aksoy
2014-09-29 07:44:54 +00:00
parent 0b2d620aab
commit 0ccd58ebf8

View File

@@ -53,7 +53,7 @@ import org.apache.commons.logging.LogFactory;
/** /**
* Recordable version service implementation * Recordable version service implementation
* *
* @author Roy Wetherall * @author Roy Wetherall
* @since 2.3 * @since 2.3
*/ */
@@ -62,37 +62,37 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
{ {
/** share logger with version2ServiceImpl */ /** share logger with version2ServiceImpl */
private static Log logger = LogFactory.getLog(Version2ServiceImpl.class); private static Log logger = LogFactory.getLog(Version2ServiceImpl.class);
/** key used to indicate a recordable version */ /** key used to indicate a recordable version */
public static final String KEY_RECORDABLE_VERSION = "recordable-version"; public static final String KEY_RECORDABLE_VERSION = "recordable-version";
public static final String KEY_FILE_PLAN = "file-plan"; public static final String KEY_FILE_PLAN = "file-plan";
/** file plan service */ /** file plan service */
protected FilePlanService filePlanService; protected FilePlanService filePlanService;
/** file folder service */ /** file folder service */
protected FileFolderService fileFolderService; protected FileFolderService fileFolderService;
/** extended permission service */ /** extended permission service */
protected ExtendedPermissionService extendedPermissionService; protected ExtendedPermissionService extendedPermissionService;
/** ownable service */ /** ownable service */
protected OwnableService ownableService; protected OwnableService ownableService;
/** extended security service */ /** extended security service */
protected ExtendedSecurityService extendedSecurityService; protected ExtendedSecurityService extendedSecurityService;
/** authentication util helper */ /** authentication util helper */
protected AuthenticationUtil authenticationUtil; protected AuthenticationUtil authenticationUtil;
/** /**
* @param filePlanService file plan service * @param filePlanService file plan service
*/ */
public void setFilePlanService(FilePlanService filePlanService) public void setFilePlanService(FilePlanService filePlanService)
{ {
this.filePlanService = filePlanService; this.filePlanService = filePlanService;
} }
/** /**
* @param fileFolderService file folder service * @param fileFolderService file folder service
*/ */
@@ -100,7 +100,7 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
{ {
this.fileFolderService = fileFolderService; this.fileFolderService = fileFolderService;
} }
/** /**
* @param extendedPermissionService extended permission service * @param extendedPermissionService extended permission service
*/ */
@@ -108,7 +108,7 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
{ {
this.extendedPermissionService = extendedPermissionService; this.extendedPermissionService = extendedPermissionService;
} }
/** /**
* @param ownableService ownable service * @param ownableService ownable service
*/ */
@@ -116,7 +116,7 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
{ {
this.ownableService = ownableService; this.ownableService = ownableService;
} }
/** /**
* @param extendedSecurityService extended security service * @param extendedSecurityService extended security service
*/ */
@@ -124,7 +124,7 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
{ {
this.extendedSecurityService = extendedSecurityService; this.extendedSecurityService = extendedSecurityService;
} }
/** /**
* @param authenticationUtil authentication util helper * @param authenticationUtil authentication util helper
*/ */
@@ -132,7 +132,7 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
{ {
this.authenticationUtil = authenticationUtil; this.authenticationUtil = authenticationUtil;
} }
/** /**
* @see org.alfresco.repo.version.Version2ServiceImpl#createVersion(org.alfresco.service.cmr.repository.NodeRef, java.util.Map, int) * @see org.alfresco.repo.version.Version2ServiceImpl#createVersion(org.alfresco.service.cmr.repository.NodeRef, java.util.Map, int)
*/ */
@@ -140,13 +140,13 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
protected Version createVersion(NodeRef nodeRef, Map<String, Serializable> origVersionProperties, int versionNumber) throws ReservedVersionNameException protected Version createVersion(NodeRef nodeRef, Map<String, Serializable> origVersionProperties, int versionNumber) throws ReservedVersionNameException
{ {
// TODO we only support recorded versions for sub types of cm:content // TODO we only support recorded versions for sub types of cm:content
// create version properties if null // create version properties if null
if (origVersionProperties == null) if (origVersionProperties == null)
{ {
origVersionProperties = new HashMap<String, Serializable>(2); origVersionProperties = new HashMap<String, Serializable>(2);
} }
// only need to check the recordable version policy when the recordable version indicator is missing from the version properties // only need to check the recordable version policy when the recordable version indicator is missing from the version properties
if (!origVersionProperties.containsKey(KEY_RECORDABLE_VERSION)) if (!origVersionProperties.containsKey(KEY_RECORDABLE_VERSION))
{ {
@@ -156,7 +156,7 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
{ {
versionType = (VersionType)origVersionProperties.get(VersionModel.PROP_VERSION_TYPE); versionType = (VersionType)origVersionProperties.get(VersionModel.PROP_VERSION_TYPE);
} }
// determine whether this is a recorded version or not // determine whether this is a recorded version or not
if (isCreateRecordedVersion(nodeRef, versionType)) if (isCreateRecordedVersion(nodeRef, versionType))
{ {
@@ -176,10 +176,10 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
origVersionProperties.put(KEY_FILE_PLAN, getFilePlan(nodeRef)); origVersionProperties.put(KEY_FILE_PLAN, getFilePlan(nodeRef));
} }
} }
return super.createVersion(nodeRef, origVersionProperties, versionNumber); return super.createVersion(nodeRef, origVersionProperties, versionNumber);
} }
/** /**
* @param nodeRef node reference * @param nodeRef node reference
* @return {@link NodeRef} associated file plan, default if none * @return {@link NodeRef} associated file plan, default if none
@@ -193,7 +193,7 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
} }
return filePlan; return filePlan;
} }
/** /**
* @return {@link NodeRef} default file plan, exception if none * @return {@link NodeRef} default file plan, exception if none
*/ */
@@ -206,10 +206,10 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
} }
return filePlan; return filePlan;
} }
/** /**
* Determine whether this is a recorded version or not. * Determine whether this is a recorded version or not.
* *
* @param nodeRef * @param nodeRef
* @return * @return
*/ */
@@ -222,15 +222,15 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
if (policyString != null) if (policyString != null)
{ {
RecordableVersionPolicy policy = RecordableVersionPolicy.valueOf(policyString.toUpperCase()); RecordableVersionPolicy policy = RecordableVersionPolicy.valueOf(policyString.toUpperCase());
if (RecordableVersionPolicy.ALL.equals(policy) || if (RecordableVersionPolicy.ALL.equals(policy) ||
(RecordableVersionPolicy.MAJOR_ONLY.equals(policy) && (RecordableVersionPolicy.MAJOR_ONLY.equals(policy) &&
VersionType.MAJOR.equals(versionType))) VersionType.MAJOR.equals(versionType)))
{ {
result = true; result = true;
} }
} }
} }
return result; return result;
} }
@@ -238,18 +238,18 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
* @see org.alfresco.repo.version.Version2ServiceImpl#createNewVersion(org.alfresco.service.namespace.QName, org.alfresco.service.cmr.repository.NodeRef, java.util.Map, java.util.Map, int, org.alfresco.repo.policy.PolicyScope) * @see org.alfresco.repo.version.Version2ServiceImpl#createNewVersion(org.alfresco.service.namespace.QName, org.alfresco.service.cmr.repository.NodeRef, java.util.Map, java.util.Map, int, org.alfresco.repo.policy.PolicyScope)
*/ */
@Override @Override
protected NodeRef createNewVersion( QName sourceTypeRef, protected NodeRef createNewVersion( QName sourceTypeRef,
NodeRef versionHistoryRef, NodeRef versionHistoryRef,
Map<QName, Serializable> standardVersionProperties, Map<QName, Serializable> standardVersionProperties,
Map<String, Serializable> versionProperties, Map<String, Serializable> versionProperties,
int versionNumber, int versionNumber,
PolicyScope nodeDetails) PolicyScope nodeDetails)
{ {
NodeRef version = null; NodeRef version = null;
if (versionProperties.containsKey(KEY_RECORDABLE_VERSION) && if (versionProperties.containsKey(KEY_RECORDABLE_VERSION) &&
((Boolean)versionProperties.get(KEY_RECORDABLE_VERSION)).booleanValue()) ((Boolean)versionProperties.get(KEY_RECORDABLE_VERSION)).booleanValue())
{ {
// create a recorded version // create a recorded version
version = createNewRecordedVersion(sourceTypeRef, versionHistoryRef, standardVersionProperties, versionProperties, versionNumber, nodeDetails); version = createNewRecordedVersion(sourceTypeRef, versionHistoryRef, standardVersionProperties, versionProperties, versionNumber, nodeDetails);
} }
@@ -258,13 +258,13 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
// create a normal version // create a normal version
version = super.createNewVersion(sourceTypeRef, versionHistoryRef, standardVersionProperties, versionProperties, versionNumber, nodeDetails); version = super.createNewVersion(sourceTypeRef, versionHistoryRef, standardVersionProperties, versionProperties, versionNumber, nodeDetails);
} }
return version; return version;
} }
/** /**
* Creates a new recorded version * Creates a new recorded version
* *
* @param sourceTypeRef * @param sourceTypeRef
* @param versionHistoryRef * @param versionHistoryRef
* @param standardVersionProperties * @param standardVersionProperties
@@ -273,22 +273,22 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
* @param nodeDetails * @param nodeDetails
* @return * @return
*/ */
protected NodeRef createNewRecordedVersion(QName sourceTypeRef, protected NodeRef createNewRecordedVersion(QName sourceTypeRef,
NodeRef versionHistoryRef, NodeRef versionHistoryRef,
Map<QName, Serializable> standardVersionProperties, Map<QName, Serializable> standardVersionProperties,
Map<String, Serializable> versionProperties, Map<String, Serializable> versionProperties,
int versionNumber, int versionNumber,
PolicyScope nodeDetails) PolicyScope nodeDetails)
{ {
NodeRef versionNodeRef = null; NodeRef versionNodeRef = null;
// Disable auto-version behaviour // Disable auto-version behaviour
policyBehaviourFilter.disableBehaviour(ContentModel.ASPECT_VERSIONABLE); policyBehaviourFilter.disableBehaviour(ContentModel.ASPECT_VERSIONABLE);
// disable other behaviours that we don't want to trigger during this process // disable other behaviours that we don't want to trigger during this process
policyBehaviourFilter.disableBehaviour(ContentModel.ASPECT_MULTILINGUAL_DOCUMENT); policyBehaviourFilter.disableBehaviour(ContentModel.ASPECT_MULTILINGUAL_DOCUMENT);
policyBehaviourFilter.disableBehaviour(ContentModel.TYPE_MULTILINGUAL_CONTAINER); policyBehaviourFilter.disableBehaviour(ContentModel.TYPE_MULTILINGUAL_CONTAINER);
try try
{ {
// get the destination file plan // get the destination file plan
@@ -297,56 +297,57 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
{ {
throw new AlfrescoRuntimeException("Can't create a new recorded version, because no file plan has been specified in the version properties."); throw new AlfrescoRuntimeException("Can't create a new recorded version, because no file plan has been specified in the version properties.");
} }
// create a copy of the source node and place in the file plan // create a copy of the source node and place in the file plan
final NodeRef nodeRef = (NodeRef)standardVersionProperties.get(Version2Model.PROP_QNAME_FROZEN_NODE_REF); final NodeRef nodeRef = (NodeRef)standardVersionProperties.get(Version2Model.PROP_QNAME_FROZEN_NODE_REF);
// create record // create record
NodeRef record = createRecord(nodeRef, filePlan); NodeRef record = createRecord(nodeRef, filePlan);
// create version nodeRef // create version nodeRef
ChildAssociationRef childAssocRef = dbNodeService.createNode( ChildAssociationRef childAssocRef = dbNodeService.createNode(
versionHistoryRef, versionHistoryRef,
Version2Model.CHILD_QNAME_VERSIONS, Version2Model.CHILD_QNAME_VERSIONS,
QName.createQName(Version2Model.NAMESPACE_URI, Version2Model.CHILD_VERSIONS + "-" + versionNumber), // TODO - testing - note: all children (of a versioned node) will have the same version number, maybe replace with a version sequence of some sort 001-...00n // TODO - testing - note: all children (of a versioned node) will have the same version number, maybe replace with a version sequence of some sort 001-...00n
sourceTypeRef, QName.createQName(Version2Model.NAMESPACE_URI, Version2Model.CHILD_VERSIONS + "-" + versionNumber),
sourceTypeRef,
null); null);
versionNodeRef = childAssocRef.getChildRef(); versionNodeRef = childAssocRef.getChildRef();
// add aspect with the standard version properties to the 'version' node // add aspect with the standard version properties to the 'version' node
nodeService.addAspect(versionNodeRef, Version2Model.ASPECT_VERSION, standardVersionProperties); nodeService.addAspect(versionNodeRef, Version2Model.ASPECT_VERSION, standardVersionProperties);
// add the recordedVersion aspect with link to record // add the recordedVersion aspect with link to record
nodeService.addAspect(versionNodeRef, ASPECT_RECORDED_VERSION, Collections.singletonMap(PROP_RECORD_NODE_REF, (Serializable)record)); nodeService.addAspect(versionNodeRef, ASPECT_RECORDED_VERSION, Collections.singletonMap(PROP_RECORD_NODE_REF, (Serializable)record));
// freeze auditable aspect information // freeze auditable aspect information
freezeAuditableAspect(nodeRef, versionNodeRef); freezeAuditableAspect(nodeRef, versionNodeRef);
} }
finally finally
{ {
// Enable behaviours // Enable behaviours
this.policyBehaviourFilter.enableBehaviour(ContentModel.ASPECT_VERSIONABLE); this.policyBehaviourFilter.enableBehaviour(ContentModel.ASPECT_VERSIONABLE);
this.policyBehaviourFilter.enableBehaviour(ContentModel.ASPECT_MULTILINGUAL_DOCUMENT); this.policyBehaviourFilter.enableBehaviour(ContentModel.ASPECT_MULTILINGUAL_DOCUMENT);
this.policyBehaviourFilter.enableBehaviour(ContentModel.TYPE_MULTILINGUAL_CONTAINER); this.policyBehaviourFilter.enableBehaviour(ContentModel.TYPE_MULTILINGUAL_CONTAINER);
} }
// If the auditable aspect is not there then add it to the 'version' node (after original aspects have been frozen) // If the auditable aspect is not there then add it to the 'version' node (after original aspects have been frozen)
if (dbNodeService.hasAspect(versionNodeRef, ContentModel.ASPECT_AUDITABLE) == false) if (dbNodeService.hasAspect(versionNodeRef, ContentModel.ASPECT_AUDITABLE) == false)
{ {
dbNodeService.addAspect(versionNodeRef, ContentModel.ASPECT_AUDITABLE, null); dbNodeService.addAspect(versionNodeRef, ContentModel.ASPECT_AUDITABLE, null);
} }
if (logger.isTraceEnabled()) if (logger.isTraceEnabled())
{ {
logger.trace("createNewRecordedVersion created (" + versionNumber + ") " + versionNodeRef); logger.trace("createNewRecordedVersion created (" + versionNumber + ") " + versionNodeRef);
} }
return versionNodeRef; return versionNodeRef;
} }
/** /**
* Create record from current version * Create record from current version
* *
* @param nodeRef state to freeze * @param nodeRef state to freeze
* @param filePlan destination file plan * @param filePlan destination file plan
* @return {@link NodeRef} versioned record * @return {@link NodeRef} versioned record
@@ -356,15 +357,15 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
return authenticationUtil.runAs(new RunAsWork<NodeRef>() return authenticationUtil.runAs(new RunAsWork<NodeRef>()
{ {
public NodeRef doWork() throws Exception public NodeRef doWork() throws Exception
{ {
// get the unfiled record folder // get the unfiled record folder
final NodeRef unfiledRecordFolder = filePlanService.getUnfiledContainer(filePlan); final NodeRef unfiledRecordFolder = filePlanService.getUnfiledContainer(filePlan);
// get the documents readers // get the documents readers
Long aclId = dbNodeService.getNodeAclId(nodeRef); Long aclId = dbNodeService.getNodeAclId(nodeRef);
Set<String> readers = extendedPermissionService.getReaders(aclId); Set<String> readers = extendedPermissionService.getReaders(aclId);
Set<String> writers = extendedPermissionService.getWriters(aclId); Set<String> writers = extendedPermissionService.getWriters(aclId);
// add the current owner to the list of extended writers // add the current owner to the list of extended writers
Set<String> modifiedWrtiers = new HashSet<String>(writers); Set<String> modifiedWrtiers = new HashSet<String>(writers);
if (nodeService.hasAspect(nodeRef, ContentModel.ASPECT_OWNABLE)) if (nodeService.hasAspect(nodeRef, ContentModel.ASPECT_OWNABLE))
@@ -375,25 +376,25 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
modifiedWrtiers.add(owner); modifiedWrtiers.add(owner);
} }
} }
// add the current user as extended writer // add the current user as extended writer
modifiedWrtiers.add(authenticationUtil.getFullyAuthenticatedUser()); modifiedWrtiers.add(authenticationUtil.getFullyAuthenticatedUser());
// copy version state and create record // copy version state and create record
NodeRef record = null; NodeRef record = null;
try try
{ {
List<AssociationRef> originalAssocs = null; List<AssociationRef> originalAssocs = null;
if (dbNodeService.hasAspect(nodeRef, ContentModel.ASPECT_COPIEDFROM)) if (dbNodeService.hasAspect(nodeRef, ContentModel.ASPECT_COPIEDFROM))
{ {
// take a note of any copyFrom information already on the node // take a note of any copyFrom information already on the node
originalAssocs = dbNodeService.getTargetAssocs(nodeRef, ContentModel.ASSOC_ORIGINAL); originalAssocs = dbNodeService.getTargetAssocs(nodeRef, ContentModel.ASSOC_ORIGINAL);
} }
// create a copy of the original state and add it to the unfiled record container // create a copy of the original state and add it to the unfiled record container
FileInfo recordInfo = fileFolderService.copy(nodeRef, unfiledRecordFolder, null); FileInfo recordInfo = fileFolderService.copy(nodeRef, unfiledRecordFolder, null);
record = recordInfo.getNodeRef(); record = recordInfo.getNodeRef();
// remove added copy assocs // remove added copy assocs
List<AssociationRef> recordAssocs = dbNodeService.getTargetAssocs(record, ContentModel.ASSOC_ORIGINAL); List<AssociationRef> recordAssocs = dbNodeService.getTargetAssocs(record, ContentModel.ASSOC_ORIGINAL);
for (AssociationRef recordAssoc : recordAssocs) for (AssociationRef recordAssoc : recordAssocs)
@@ -403,7 +404,7 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
recordAssoc.getTargetRef(), recordAssoc.getTargetRef(),
ContentModel.ASSOC_ORIGINAL); ContentModel.ASSOC_ORIGINAL);
} }
// re-add origional assocs or remove aspect // re-add origional assocs or remove aspect
if (originalAssocs == null) if (originalAssocs == null)
{ {
@@ -415,24 +416,24 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
{ {
dbNodeService.createAssociation(originalAssoc.getSourceRef(), originalAssoc.getTargetRef(), ContentModel.ASSOC_ORIGINAL); dbNodeService.createAssociation(originalAssoc.getSourceRef(), originalAssoc.getTargetRef(), ContentModel.ASSOC_ORIGINAL);
} }
} }
} }
catch (FileNotFoundException e) catch (FileNotFoundException e)
{ {
throw new AlfrescoRuntimeException("Can't create recorded version, because copy fails.", e); throw new AlfrescoRuntimeException("Can't create recorded version, because copy fails.", e);
} }
// set extended security on record // set extended security on record
extendedSecurityService.addExtendedSecurity(record, readers, writers); extendedSecurityService.addExtendedSecurity(record, readers, writers);
return record; return record;
} }
}, authenticationUtil.getAdminUserName()); }, authenticationUtil.getAdminUserName());
} }
/** /**
* Freezes audit aspect properties. * Freezes audit aspect properties.
* *
* @param nodeRef * @param nodeRef
* @param versionNodeRef * @param versionNodeRef
*/ */
@@ -445,14 +446,14 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
dbNodeService.setProperty(versionNodeRef, Version2Model.PROP_QNAME_FROZEN_CREATED, properties.get(ContentModel.PROP_CREATED)); dbNodeService.setProperty(versionNodeRef, Version2Model.PROP_QNAME_FROZEN_CREATED, properties.get(ContentModel.PROP_CREATED));
dbNodeService.setProperty(versionNodeRef, Version2Model.PROP_QNAME_FROZEN_MODIFIER, properties.get(ContentModel.PROP_MODIFIER)); dbNodeService.setProperty(versionNodeRef, Version2Model.PROP_QNAME_FROZEN_MODIFIER, properties.get(ContentModel.PROP_MODIFIER));
dbNodeService.setProperty(versionNodeRef, Version2Model.PROP_QNAME_FROZEN_MODIFIED, properties.get(ContentModel.PROP_MODIFIED)); dbNodeService.setProperty(versionNodeRef, Version2Model.PROP_QNAME_FROZEN_MODIFIED, properties.get(ContentModel.PROP_MODIFIED));
dbNodeService.setProperty(versionNodeRef, Version2Model.PROP_QNAME_FROZEN_ACCESSED, properties.get(ContentModel.PROP_ACCESSED)); dbNodeService.setProperty(versionNodeRef, Version2Model.PROP_QNAME_FROZEN_ACCESSED, properties.get(ContentModel.PROP_ACCESSED));
if (properties.get(ContentModel.PROP_OWNER) != null) if (properties.get(ContentModel.PROP_OWNER) != null)
{ {
dbNodeService.setProperty(versionNodeRef, PROP_FROZEN_OWNER, properties.get(ContentModel.PROP_OWNER)); dbNodeService.setProperty(versionNodeRef, PROP_FROZEN_OWNER, properties.get(ContentModel.PROP_OWNER));
} }
} }
} }
/** /**
* @see org.alfresco.repo.version.Version2ServiceImpl#getVersion(org.alfresco.service.cmr.repository.NodeRef) * @see org.alfresco.repo.version.Version2ServiceImpl#getVersion(org.alfresco.service.cmr.repository.NodeRef)
*/ */
@@ -460,13 +461,13 @@ public class RecordableVersionServiceImpl extends Version2ServiceImpl
protected Version getVersion(NodeRef versionRef) protected Version getVersion(NodeRef versionRef)
{ {
Version version = super.getVersion(versionRef); Version version = super.getVersion(versionRef);
NodeRef record = (NodeRef)dbNodeService.getProperty(versionRef, PROP_RECORD_NODE_REF); NodeRef record = (NodeRef)dbNodeService.getProperty(versionRef, PROP_RECORD_NODE_REF);
if (record != null) if (record != null)
{ {
version.getVersionProperties().put("RecordVersion", record); version.getVersionProperties().put("RecordVersion", record);
} }
return version; return version;
} }
} }