mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Slight refactor. ReferredMetadataService uses the registry to look up Referrals rather than the AdminService. Seems neater.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/classified_renditions@111772 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -64,6 +64,7 @@
|
||||
<bean id="referredMetadataService"
|
||||
class="org.alfresco.module.org_alfresco_module_rm.referredmetadata.ReferredMetadataServiceImpl" >
|
||||
<property name="referralAdminService" ref="ReferralAdminService" />
|
||||
<property name="referralRegistry" ref="referralRegistry" />
|
||||
<property name="dictionaryService" ref="dictionaryService" />
|
||||
<property name="nodeService" ref="NodeService" />
|
||||
</bean>
|
||||
|
@@ -79,11 +79,29 @@ public class ReferralRegistry
|
||||
*/
|
||||
public MetadataReferral getReferralForAssociation(QName assocType)
|
||||
{
|
||||
for (MetadataReferral d : metadataReferrals)
|
||||
for (MetadataReferral mr : metadataReferrals)
|
||||
{
|
||||
if (d.getAssocType().equals(assocType))
|
||||
if (mr.getAssocType().equals(assocType))
|
||||
{
|
||||
return d;
|
||||
return mr;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link MetadataReferral} which is defined to handle the specified aspect.
|
||||
*
|
||||
* @param aspectName the name of the aspect whose {@link MetadataReferral} is sought.
|
||||
* @return the {@link MetadataReferral} handling the specified aspect if there is one, else {@code null}.
|
||||
*/
|
||||
public MetadataReferral getReferralForAspect(QName aspectName)
|
||||
{
|
||||
for (MetadataReferral mr : metadataReferrals)
|
||||
{
|
||||
if (mr.getAspects().contains(aspectName))
|
||||
{
|
||||
return mr;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
@@ -46,6 +46,7 @@ import java.util.Set;
|
||||
public class ReferredMetadataServiceImpl implements ReferredMetadataService
|
||||
{
|
||||
private ReferralAdminService referralAdminService;
|
||||
private ReferralRegistry referralRegistry;
|
||||
private DictionaryService dictionaryService;
|
||||
private NodeService nodeService;
|
||||
|
||||
@@ -54,6 +55,11 @@ public class ReferredMetadataServiceImpl implements ReferredMetadataService
|
||||
this.referralAdminService = service;
|
||||
}
|
||||
|
||||
public void setReferralRegistry(ReferralRegistry registry)
|
||||
{
|
||||
this.referralRegistry = registry;
|
||||
}
|
||||
|
||||
public void setDictionaryService(DictionaryService service)
|
||||
{
|
||||
this.dictionaryService = service;
|
||||
@@ -71,7 +77,7 @@ public class ReferredMetadataServiceImpl implements ReferredMetadataService
|
||||
throw new InvalidNodeRefException(potentialReferrer);
|
||||
}
|
||||
|
||||
final MetadataReferral metadataReferral = referralAdminService.getReferralFor(aspectName);
|
||||
final MetadataReferral metadataReferral = referralRegistry.getReferralForAspect(aspectName);
|
||||
|
||||
if (metadataReferral == null)
|
||||
{
|
||||
@@ -91,7 +97,7 @@ public class ReferredMetadataServiceImpl implements ReferredMetadataService
|
||||
throw new InvalidNodeRefException(referrer);
|
||||
}
|
||||
|
||||
final MetadataReferral d = referralAdminService.getReferralFor(aspectName);
|
||||
final MetadataReferral d = referralRegistry.getReferralForAspect(aspectName);
|
||||
|
||||
if (d == null)
|
||||
{
|
||||
|
@@ -64,6 +64,7 @@ public class ReferredMetadataServiceImplUnitTest
|
||||
@Mock DictionaryService mockDictionaryService;
|
||||
@Mock NodeService mockNodeService;
|
||||
@Mock ReferralAdminServiceImpl mockReferralAdminService;
|
||||
@Mock ReferralRegistry mockReferralRegistry;
|
||||
|
||||
/** This node has a referent node. */
|
||||
private final NodeRef referringNode = new NodeRef(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, "referringNode");
|
||||
@@ -116,7 +117,7 @@ public class ReferredMetadataServiceImplUnitTest
|
||||
when(mockReferralAdminService.getAttachedReferralsFrom(referringNode)).thenReturn(asSet(referral));
|
||||
for (QName referredAspect : asSet(referredAspect1, referredAspect2))
|
||||
{
|
||||
when(mockReferralAdminService.getReferralFor(referredAspect)).thenReturn(referral);
|
||||
when(mockReferralRegistry.getReferralForAspect(referredAspect)).thenReturn(referral);
|
||||
when(mockNodeService.hasAspect(referentNode, referredAspect)).thenReturn(true);
|
||||
}
|
||||
when(mockNodeService.getSourceAssocs(referentNode, referralAssocType)).thenReturn(asList(attachedReferralAssocRef));
|
||||
|
Reference in New Issue
Block a user