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="recordsManagementService" ref="recordsManagementService" />
|
||||||
<property name="permissionService" ref="PermissionService" />
|
<property name="permissionService" ref="PermissionService" />
|
||||||
<property name="nodeService" ref="NodeService" />
|
<property name="nodeService" ref="NodeService" />
|
||||||
|
<property name="freezeService" ref="freezeService" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="capabilityCondition.frozen"
|
<bean id="capabilityCondition.frozen"
|
||||||
|
@@ -17,6 +17,7 @@
|
|||||||
<property name="nodeService" ref="NodeService"/>
|
<property name="nodeService" ref="NodeService"/>
|
||||||
<property name="namespaceService" ref="NamespaceService"/>
|
<property name="namespaceService" ref="NamespaceService"/>
|
||||||
<property name="capabilityService" ref="CapabilityService"/>
|
<property name="capabilityService" ref="CapabilityService"/>
|
||||||
|
<property name="freezeService" ref="freezeService"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="jsonConversionComponent.baseIndicator"
|
<bean id="jsonConversionComponent.baseIndicator"
|
||||||
|
@@ -23,6 +23,7 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
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.module.org_alfresco_module_rm.record.RecordService;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
@@ -150,7 +151,10 @@ public interface RecordsManagementService
|
|||||||
* @return boolean true if record is frozen, false otherwise
|
* @return boolean true if record is frozen, false otherwise
|
||||||
*
|
*
|
||||||
* @since 2.0
|
* @since 2.0
|
||||||
|
*
|
||||||
|
* @deprecated As of 2.1, replaced by {@link FreezeService#isFrozen(NodeRef)}
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
boolean isFrozen(NodeRef nodeRef);
|
boolean isFrozen(NodeRef nodeRef);
|
||||||
|
|
||||||
|
|
||||||
@@ -164,7 +168,10 @@ public interface RecordsManagementService
|
|||||||
* @return boolean true if record folder has frozen children, false otherwise
|
* @return boolean true if record folder has frozen children, false otherwise
|
||||||
*
|
*
|
||||||
* @since 2.0
|
* @since 2.0
|
||||||
|
*
|
||||||
|
* @deprecated As of 2.1, replaced by {@link FreezeService#hasFrozenChildren(NodeRef)}
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
boolean hasFrozenChildren(NodeRef nodeRef);
|
boolean hasFrozenChildren(NodeRef nodeRef);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -19,6 +19,7 @@
|
|||||||
package org.alfresco.module.org_alfresco_module_rm.capability.declarative;
|
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.RecordsManagementService;
|
||||||
|
import org.alfresco.module.org_alfresco_module_rm.freeze.FreezeService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||||
import org.alfresco.service.cmr.repository.NodeService;
|
import org.alfresco.service.cmr.repository.NodeService;
|
||||||
import org.alfresco.service.cmr.security.PermissionService;
|
import org.alfresco.service.cmr.security.PermissionService;
|
||||||
@@ -40,6 +41,7 @@ public abstract class AbstractCapabilityCondition implements CapabilityCondition
|
|||||||
protected RecordsManagementService rmService;
|
protected RecordsManagementService rmService;
|
||||||
protected PermissionService permissionService;
|
protected PermissionService permissionService;
|
||||||
protected NodeService nodeService;
|
protected NodeService nodeService;
|
||||||
|
protected FreezeService freezeService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param rmService records management service
|
* @param rmService records management service
|
||||||
@@ -65,6 +67,14 @@ public abstract class AbstractCapabilityCondition implements CapabilityCondition
|
|||||||
this.nodeService = nodeService;
|
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()
|
* @see org.alfresco.module.org_alfresco_module_rm.capability.declarative.CapabilityCondition#getName()
|
||||||
*/
|
*/
|
||||||
|
@@ -36,10 +36,10 @@ private boolean checkChildren = false;
|
|||||||
@Override
|
@Override
|
||||||
public boolean evaluate(NodeRef nodeRef)
|
public boolean evaluate(NodeRef nodeRef)
|
||||||
{
|
{
|
||||||
boolean result = rmService.isFrozen(nodeRef);
|
boolean result = freezeService.isFrozen(nodeRef);
|
||||||
if (result == false && checkChildren == true)
|
if (result == false && checkChildren == true)
|
||||||
{
|
{
|
||||||
result = rmService.hasFrozenChildren(nodeRef);
|
result = freezeService.hasFrozenChildren(nodeRef);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@@ -36,7 +36,7 @@ public class FrozenOrHoldCondition extends AbstractCapabilityCondition
|
|||||||
public boolean evaluate(NodeRef nodeRef)
|
public boolean evaluate(NodeRef nodeRef)
|
||||||
{
|
{
|
||||||
FilePlanComponentKind kind = rmService.getFilePlanComponentKind(nodeRef);
|
FilePlanComponentKind kind = rmService.getFilePlanComponentKind(nodeRef);
|
||||||
return (rmService.isFrozen(nodeRef) ||
|
return (freezeService.isFrozen(nodeRef) ||
|
||||||
(kind != null && kind.equals(FilePlanComponentKind.HOLD)));
|
(kind != null && kind.equals(FilePlanComponentKind.HOLD)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -136,4 +136,21 @@ public interface FreezeService
|
|||||||
* @param reason updated reason
|
* @param reason updated reason
|
||||||
*/
|
*/
|
||||||
void updateReason(NodeRef hold, String 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 &&
|
if (nodeService.exists(nodeRef) == true &&
|
||||||
recordsManagementService.isFilePlanComponent(nodeRef) == true)
|
recordsManagementService.isFilePlanComponent(nodeRef) == true)
|
||||||
{
|
{
|
||||||
if (recordsManagementService.isFrozen(nodeRef) == true)
|
if (isFrozen(nodeRef) == true)
|
||||||
{
|
{
|
||||||
// never allowed to delete a frozen node
|
// never allowed to delete a frozen node
|
||||||
throw new AccessDeniedException("Frozen nodes can not be deleted.");
|
throw new AccessDeniedException("Frozen nodes can not be deleted.");
|
||||||
@@ -165,7 +165,7 @@ public class FreezeServiceImpl implements FreezeService,
|
|||||||
if (assoc.isPrimary() == true)
|
if (assoc.isPrimary() == true)
|
||||||
{
|
{
|
||||||
NodeRef nodeRef = assoc.getChildRef();
|
NodeRef nodeRef = assoc.getChildRef();
|
||||||
if (recordsManagementService.isFrozen(nodeRef) == true)
|
if (isFrozen(nodeRef) == true)
|
||||||
{
|
{
|
||||||
// never allowed to delete a node with a frozen child
|
// never allowed to delete a node with a frozen child
|
||||||
throw new AccessDeniedException("Can not delete node, because it contains a frozen child node.");
|
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);
|
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
|
* 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.RecordsManagementService;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.capability.Capability;
|
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.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.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.cmr.repository.NodeService;
|
import org.alfresco.service.cmr.repository.NodeService;
|
||||||
@@ -58,6 +59,9 @@ public abstract class BaseEvaluator implements RecordsManagementModel
|
|||||||
/** Capability service */
|
/** Capability service */
|
||||||
protected CapabilityService capabilityService;
|
protected CapabilityService capabilityService;
|
||||||
|
|
||||||
|
/** Freeze service */
|
||||||
|
protected FreezeService freezeService;
|
||||||
|
|
||||||
/** File plan component kinds */
|
/** File plan component kinds */
|
||||||
protected Set<FilePlanComponentKind> kinds;
|
protected Set<FilePlanComponentKind> kinds;
|
||||||
|
|
||||||
@@ -104,6 +108,14 @@ public abstract class BaseEvaluator implements RecordsManagementModel
|
|||||||
this.capabilityService = capabilityService;
|
this.capabilityService = capabilityService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param freezeService freeze service
|
||||||
|
*/
|
||||||
|
public void setFreezeService(FreezeService freezeService)
|
||||||
|
{
|
||||||
|
this.freezeService = freezeService;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param name
|
* @param name
|
||||||
*/
|
*/
|
||||||
|
@@ -29,6 +29,6 @@ public class FrozenEvaluator extends BaseEvaluator
|
|||||||
@Override
|
@Override
|
||||||
protected boolean evaluateImpl(NodeRef nodeRef)
|
protected boolean evaluateImpl(NodeRef nodeRef)
|
||||||
{
|
{
|
||||||
return recordsManagementService.isFrozen(nodeRef);
|
return freezeService.isFrozen(nodeRef);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user