{
Attribute attribute = m_metaclass.getInstanceAttribute(nAttribute);
for (int nAspect = 0; nAspect < nAspectCount; ++nAspect)
{
ClassAspect aspect = (ClassAspect)m_metaclass.getAspect(nAspect);
Attribute aspectAttribute = aspect.findAttribute(attribute.getName());
if (aspectAttribute != null)
{
PersistenceMapping aspectMapping = aspect.findPersistenceMapping(m_dataSource);
if (aspectMapping != null)
{
AttributeMapping aspectAttrMapping = aspectMapping.getAttributeMapping(aspectAttribute);
if (aspectAttrMapping != null)
{
deriveAttributeMapping(attribute, aspectAttribute, aspectAttrMapping);
}
}
break;
}
}
}
}
completeDerivation();
PersistenceMapping baseMapping = getBaseMapping();
if (baseMapping != null)
{
if (m_typeCodeAttribute == null && baseMapping.m_typeCodeAttribute != null)
{
m_typeCodeAttribute = m_metaclass.getDerivedAttribute(baseMapping.m_typeCodeAttribute);
}
if (m_lockingAttribute == null && baseMapping.m_lockingAttribute != null)
{
m_lockingAttribute = m_metaclass.getDerivedAttribute(baseMapping.m_lockingAttribute);
}
if (m_fragmentAttribute == null && baseMapping.m_fragmentAttribute != null)
{
m_fragmentAttribute = m_metaclass.getDerivedAttribute(baseMapping.m_fragmentAttribute);
}
if (m_nFragmentReplication == REPLICATION_NONE)
{
m_nFragmentReplication = baseMapping.getFragmentReplication();
}
if (m_nCaching == CACHING_NONE)
{
m_nCaching = baseMapping.getCaching();
}
}
if (nAspectCount != 0)
{
for (int nAspect = 0; nAspect < nAspectCount; ++nAspect)
{
ClassAspect aspect = (ClassAspect)m_metaclass.getAspect(nAspect);
PersistenceMapping aspectMapping = aspect.findPersistenceMapping(m_dataSource);
if (aspectMapping != null)
{
if (m_typeCodeAttribute == null && aspectMapping.getTypeCodeAttribute() != null)
{