public void removeRelationship(IdentityStoreInvocationContext invocationCxt, IdentityObject fromIdentity, IdentityObject toIdentity, IdentityObjectRelationshipType relationshipType, String relationshipName) throws IdentityException
{
IdentityStore fromStore = resolveIdentityStore(fromIdentity);
IdentityStore toStore = resolveIdentityStore(toIdentity);
IdentityStoreInvocationContext toTargetCtx = resolveInvocationContext(toStore, invocationCxt);
IdentityStoreInvocationContext defaultTargetCtx = resolveInvocationContext(defaultIdentityStore, invocationCxt);
if (fromStore == toStore)
{
if (relationshipName == null ||
(relationshipName != null && fromStore.getSupportedFeatures().isNamedRelationshipsSupported()))
{
fromStore.removeRelationship(toTargetCtx, fromIdentity, toIdentity, relationshipType, relationshipName);
return;
}
}
if (!hasIdentityObject(defaultTargetCtx, defaultIdentityStore, fromIdentity))
{
defaultIdentityStore.createIdentityObject(defaultTargetCtx, fromIdentity.getName(), fromIdentity.getIdentityType());
}
if (!hasIdentityObject(defaultTargetCtx, defaultIdentityStore, toIdentity))
{
defaultIdentityStore.createIdentityObject(defaultTargetCtx, toIdentity.getName(), toIdentity.getIdentityType());
}
defaultIdentityStore.removeRelationship(defaultTargetCtx, fromIdentity, toIdentity, relationshipType, relationshipName);
}