public Map<String, IdentityObjectAttributeMetaData> getAttributesMetaData(IdentityStoreInvocationContext invocationContext,
IdentityObjectType identityObjectType)
{
IdentityStore targetStore = resolveIdentityStore(identityObjectType);
IdentityStoreInvocationContext targetCtx = resolveInvocationContext(targetStore, invocationContext);
Map<String, IdentityObjectAttributeMetaData> mdMap = new HashMap<String, IdentityObjectAttributeMetaData>();
mdMap.putAll(targetStore.getAttributesMetaData(targetCtx, identityObjectType));
if (targetStore != defaultAttributeStore)
{
IdentityStoreInvocationContext defaultCtx = resolveInvocationContext(defaultAttributeStore, invocationContext);
Map<String, IdentityObjectAttributeMetaData> defaultMDMap = defaultAttributeStore.getAttributesMetaData(defaultCtx, identityObjectType);
if (defaultMDMap != null)
{
for (Map.Entry<String, IdentityObjectAttributeMetaData> entry : defaultMDMap.entrySet())
{
if (!mdMap.containsKey(entry.getKey()))
{
mdMap.put(entry.getKey(), entry.getValue());
}
}
}
}
return mdMap;
}