mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
FreezeService code refactoring
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@43578 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
<property name="recordsManagementService" ref="recordsManagementService" />
|
||||
<property name="permissionService" ref="PermissionService" />
|
||||
<property name="nodeService" ref="NodeService" />
|
||||
<property name="freezeService" ref="freezeService" />
|
||||
</bean>
|
||||
|
||||
<bean id="capabilityCondition.frozen"
|
||||
|
@@ -17,6 +17,7 @@
|
||||
<property name="nodeService" ref="NodeService"/>
|
||||
<property name="namespaceService" ref="NamespaceService"/>
|
||||
<property name="capabilityService" ref="CapabilityService"/>
|
||||
<property name="freezeService" ref="freezeService"/>
|
||||
</bean>
|
||||
|
||||
<bean id="jsonConversionComponent.baseIndicator"
|
||||
|
@@ -23,6 +23,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.alfresco.module.org_alfresco_module_rm.freeze.FreezeService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
@@ -150,7 +151,10 @@ public interface RecordsManagementService
|
||||
* @return boolean true if record is frozen, false otherwise
|
||||
*
|
||||
* @since 2.0
|
||||
*
|
||||
* @deprecated As of 2.1, replaced by {@link FreezeService#isFrozen(NodeRef)}
|
||||
*/
|
||||
@Deprecated
|
||||
boolean isFrozen(NodeRef nodeRef);
|
||||
|
||||
|
||||
@@ -164,7 +168,10 @@ public interface RecordsManagementService
|
||||
* @return boolean true if record folder has frozen children, false otherwise
|
||||
*
|
||||
* @since 2.0
|
||||
*
|
||||
* @deprecated As of 2.1, replaced by {@link FreezeService#hasFrozenChildren(NodeRef)}
|
||||
*/
|
||||
@Deprecated
|
||||
boolean hasFrozenChildren(NodeRef nodeRef);
|
||||
|
||||
/**
|
||||
|
@@ -19,6 +19,7 @@
|
||||
package org.alfresco.module.org_alfresco_module_rm.capability.declarative;
|
||||
|
||||
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.freeze.FreezeService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.service.cmr.security.PermissionService;
|
||||
@@ -40,6 +41,7 @@ public abstract class AbstractCapabilityCondition implements CapabilityCondition
|
||||
protected RecordsManagementService rmService;
|
||||
protected PermissionService permissionService;
|
||||
protected NodeService nodeService;
|
||||
protected FreezeService freezeService;
|
||||
|
||||
/**
|
||||
* @param rmService records management service
|
||||
@@ -65,6 +67,14 @@ public abstract class AbstractCapabilityCondition implements CapabilityCondition
|
||||
this.nodeService = nodeService;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param freezeService freeze service
|
||||
*/
|
||||
public void setFreezeService(FreezeService freezeService)
|
||||
{
|
||||
this.freezeService = freezeService;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.alfresco.module.org_alfresco_module_rm.capability.declarative.CapabilityCondition#getName()
|
||||
*/
|
||||
|
@@ -36,10 +36,10 @@ private boolean checkChildren = false;
|
||||
@Override
|
||||
public boolean evaluate(NodeRef nodeRef)
|
||||
{
|
||||
boolean result = rmService.isFrozen(nodeRef);
|
||||
boolean result = freezeService.isFrozen(nodeRef);
|
||||
if (result == false && checkChildren == true)
|
||||
{
|
||||
result = rmService.hasFrozenChildren(nodeRef);
|
||||
result = freezeService.hasFrozenChildren(nodeRef);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
@@ -36,7 +36,7 @@ public class FrozenOrHoldCondition extends AbstractCapabilityCondition
|
||||
public boolean evaluate(NodeRef nodeRef)
|
||||
{
|
||||
FilePlanComponentKind kind = rmService.getFilePlanComponentKind(nodeRef);
|
||||
return (rmService.isFrozen(nodeRef) ||
|
||||
return (freezeService.isFrozen(nodeRef) ||
|
||||
(kind != null && kind.equals(FilePlanComponentKind.HOLD)));
|
||||
}
|
||||
|
||||
|
@@ -136,4 +136,21 @@ public interface FreezeService
|
||||
* @param reason updated reason
|
||||
*/
|
||||
void updateReason(NodeRef hold, String reason);
|
||||
|
||||
/**
|
||||
* Gets the hold node references for a given file plan
|
||||
* or an empty set if there is not any hold node available
|
||||
*
|
||||
* @param filePlan file plan for which the hold nodes will be retrieved
|
||||
* @return Set<NodeRef> hold node references
|
||||
*/
|
||||
Set<NodeRef> getHolds(NodeRef filePlan);
|
||||
|
||||
/**
|
||||
* Checks whether or not the given node has frozen children
|
||||
*
|
||||
* @param nodeRef The nodeRef for which will be checked if it has frozen children
|
||||
* @return true if the given nodeRef has frozen children, false otherwise
|
||||
*/
|
||||
boolean hasFrozenChildren(NodeRef nodeRef);
|
||||
}
|
||||
|
@@ -138,7 +138,7 @@ public class FreezeServiceImpl implements FreezeService,
|
||||
if (nodeService.exists(nodeRef) == true &&
|
||||
recordsManagementService.isFilePlanComponent(nodeRef) == true)
|
||||
{
|
||||
if (recordsManagementService.isFrozen(nodeRef) == true)
|
||||
if (isFrozen(nodeRef) == true)
|
||||
{
|
||||
// never allowed to delete a frozen node
|
||||
throw new AccessDeniedException("Frozen nodes can not be deleted.");
|
||||
@@ -165,7 +165,7 @@ public class FreezeServiceImpl implements FreezeService,
|
||||
if (assoc.isPrimary() == true)
|
||||
{
|
||||
NodeRef nodeRef = assoc.getChildRef();
|
||||
if (recordsManagementService.isFrozen(nodeRef) == true)
|
||||
if (isFrozen(nodeRef) == true)
|
||||
{
|
||||
// never allowed to delete a node with a frozen child
|
||||
throw new AccessDeniedException("Can not delete node, because it contains a frozen child node.");
|
||||
@@ -456,6 +456,39 @@ public class FreezeServiceImpl implements FreezeService,
|
||||
nodeService.setProperty(hold, PROP_HOLD_REASON, reason);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.alfresco.module.org_alfresco_module_rm.freeze.FreezeService#getHold(org.alfresco.service.cmr.repository.NodeRef)
|
||||
*/
|
||||
@Override
|
||||
public Set<NodeRef> getHolds(NodeRef filePlan)
|
||||
{
|
||||
ParameterCheck.mandatory("filePlan", filePlan);
|
||||
|
||||
Set<NodeRef> holds = new HashSet<NodeRef>();
|
||||
|
||||
List<ChildAssociationRef> childAssocs = nodeService.getChildAssocs(filePlan, ASSOC_HOLDS, RegexQNamePattern.MATCH_ALL);
|
||||
if (childAssocs != null && !childAssocs.isEmpty())
|
||||
{
|
||||
for (ChildAssociationRef childAssoc : childAssocs)
|
||||
{
|
||||
holds.add(childAssoc.getChildRef());
|
||||
}
|
||||
}
|
||||
|
||||
return holds;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.alfresco.module.org_alfresco_module_rm.freeze.FreezeService#hasFrozenChildren(org.alfresco.service.cmr.repository.NodeRef)
|
||||
*/
|
||||
@Override
|
||||
public boolean hasFrozenChildren(NodeRef nodeRef)
|
||||
{
|
||||
ParameterCheck.mandatory("nodeRef", nodeRef);
|
||||
|
||||
return getFrozen(nodeRef).size() > 0 ? true : false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a hold using the given nodeRef and reason
|
||||
*
|
||||
|
@@ -27,6 +27,7 @@ import org.alfresco.module.org_alfresco_module_rm.FilePlanComponentKind;
|
||||
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.capability.Capability;
|
||||
import org.alfresco.module.org_alfresco_module_rm.capability.CapabilityService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.freeze.FreezeService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
@@ -58,6 +59,9 @@ public abstract class BaseEvaluator implements RecordsManagementModel
|
||||
/** Capability service */
|
||||
protected CapabilityService capabilityService;
|
||||
|
||||
/** Freeze service */
|
||||
protected FreezeService freezeService;
|
||||
|
||||
/** File plan component kinds */
|
||||
protected Set<FilePlanComponentKind> kinds;
|
||||
|
||||
@@ -104,6 +108,14 @@ public abstract class BaseEvaluator implements RecordsManagementModel
|
||||
this.capabilityService = capabilityService;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param freezeService freeze service
|
||||
*/
|
||||
public void setFreezeService(FreezeService freezeService)
|
||||
{
|
||||
this.freezeService = freezeService;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name
|
||||
*/
|
||||
|
@@ -29,6 +29,6 @@ public class FrozenEvaluator extends BaseEvaluator
|
||||
@Override
|
||||
protected boolean evaluateImpl(NodeRef nodeRef)
|
||||
{
|
||||
return recordsManagementService.isFrozen(nodeRef);
|
||||
return freezeService.isFrozen(nodeRef);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user