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"
|
<bean id="referredMetadataService"
|
||||||
class="org.alfresco.module.org_alfresco_module_rm.referredmetadata.ReferredMetadataServiceImpl" >
|
class="org.alfresco.module.org_alfresco_module_rm.referredmetadata.ReferredMetadataServiceImpl" >
|
||||||
<property name="referralAdminService" ref="ReferralAdminService" />
|
<property name="referralAdminService" ref="ReferralAdminService" />
|
||||||
|
<property name="referralRegistry" ref="referralRegistry" />
|
||||||
<property name="dictionaryService" ref="dictionaryService" />
|
<property name="dictionaryService" ref="dictionaryService" />
|
||||||
<property name="nodeService" ref="NodeService" />
|
<property name="nodeService" ref="NodeService" />
|
||||||
</bean>
|
</bean>
|
||||||
|
@@ -79,11 +79,29 @@ public class ReferralRegistry
|
|||||||
*/
|
*/
|
||||||
public MetadataReferral getReferralForAssociation(QName assocType)
|
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;
|
return null;
|
||||||
|
@@ -46,6 +46,7 @@ import java.util.Set;
|
|||||||
public class ReferredMetadataServiceImpl implements ReferredMetadataService
|
public class ReferredMetadataServiceImpl implements ReferredMetadataService
|
||||||
{
|
{
|
||||||
private ReferralAdminService referralAdminService;
|
private ReferralAdminService referralAdminService;
|
||||||
|
private ReferralRegistry referralRegistry;
|
||||||
private DictionaryService dictionaryService;
|
private DictionaryService dictionaryService;
|
||||||
private NodeService nodeService;
|
private NodeService nodeService;
|
||||||
|
|
||||||
@@ -54,6 +55,11 @@ public class ReferredMetadataServiceImpl implements ReferredMetadataService
|
|||||||
this.referralAdminService = service;
|
this.referralAdminService = service;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setReferralRegistry(ReferralRegistry registry)
|
||||||
|
{
|
||||||
|
this.referralRegistry = registry;
|
||||||
|
}
|
||||||
|
|
||||||
public void setDictionaryService(DictionaryService service)
|
public void setDictionaryService(DictionaryService service)
|
||||||
{
|
{
|
||||||
this.dictionaryService = service;
|
this.dictionaryService = service;
|
||||||
@@ -71,7 +77,7 @@ public class ReferredMetadataServiceImpl implements ReferredMetadataService
|
|||||||
throw new InvalidNodeRefException(potentialReferrer);
|
throw new InvalidNodeRefException(potentialReferrer);
|
||||||
}
|
}
|
||||||
|
|
||||||
final MetadataReferral metadataReferral = referralAdminService.getReferralFor(aspectName);
|
final MetadataReferral metadataReferral = referralRegistry.getReferralForAspect(aspectName);
|
||||||
|
|
||||||
if (metadataReferral == null)
|
if (metadataReferral == null)
|
||||||
{
|
{
|
||||||
@@ -91,7 +97,7 @@ public class ReferredMetadataServiceImpl implements ReferredMetadataService
|
|||||||
throw new InvalidNodeRefException(referrer);
|
throw new InvalidNodeRefException(referrer);
|
||||||
}
|
}
|
||||||
|
|
||||||
final MetadataReferral d = referralAdminService.getReferralFor(aspectName);
|
final MetadataReferral d = referralRegistry.getReferralForAspect(aspectName);
|
||||||
|
|
||||||
if (d == null)
|
if (d == null)
|
||||||
{
|
{
|
||||||
|
@@ -64,6 +64,7 @@ public class ReferredMetadataServiceImplUnitTest
|
|||||||
@Mock DictionaryService mockDictionaryService;
|
@Mock DictionaryService mockDictionaryService;
|
||||||
@Mock NodeService mockNodeService;
|
@Mock NodeService mockNodeService;
|
||||||
@Mock ReferralAdminServiceImpl mockReferralAdminService;
|
@Mock ReferralAdminServiceImpl mockReferralAdminService;
|
||||||
|
@Mock ReferralRegistry mockReferralRegistry;
|
||||||
|
|
||||||
/** This node has a referent node. */
|
/** This node has a referent node. */
|
||||||
private final NodeRef referringNode = new NodeRef(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, "referringNode");
|
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));
|
when(mockReferralAdminService.getAttachedReferralsFrom(referringNode)).thenReturn(asSet(referral));
|
||||||
for (QName referredAspect : asSet(referredAspect1, referredAspect2))
|
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.hasAspect(referentNode, referredAspect)).thenReturn(true);
|
||||||
}
|
}
|
||||||
when(mockNodeService.getSourceAssocs(referentNode, referralAssocType)).thenReturn(asList(attachedReferralAssocRef));
|
when(mockNodeService.getSourceAssocs(referentNode, referralAssocType)).thenReturn(asList(attachedReferralAssocRef));
|
||||||
|
Reference in New Issue
Block a user