{
Pair pathToAdd = associationPath;
if (m_assocPathByDependentMsgPartMap == null)
{
m_assocPathByDependentMsgPartMap = new HashTab();
}
else
{
Pair oldPath = (Pair)m_assocPathByDependentMsgPartMap.get(part);
if (oldPath != null)
{
pathToAdd = findCommonAssocSuffix(associationPath, oldPath);
}
else if (m_assocPathByAssocCodeMap != null)
{
ObjectMessagePartMapping partMapping = (ObjectMessagePartMapping)part.getMapping();
if (m_assocPathByAssocCodeMap.get(partMapping.getAssociationCode()) != null)
{
pathToAdd = null;
}
}
if (pathToAdd == null)
{
ObjectMessagePartMapping partMapping = (ObjectMessagePartMapping)part.getMapping();
throw new MetadataValidationException("err.meta.integration.object.mapping.associationCodeDup",
new Object[]{partMapping.getAssociationCode(), part.getFullPath()});
}
}
m_assocPathByDependentMsgPartMap.put(part, pathToAdd);
if (bRoot)
{
if (m_assocPathByAssocCodeMap == null)
{
m_assocPathByAssocCodeMap = new HashTab();
}
m_assocPathByAssocCodeMap.put(
((ObjectMessagePartMapping)part.getMapping()).getAssociationCode(), pathToAdd);
}