void MFlatAssignmentVisitor::visitMAssociation(const MAssociation *association) { visitMRelation(association); auto targetAssociation = dynamic_cast<MAssociation *>(m_target); QMT_CHECK(targetAssociation); targetAssociation->setEndA(association->endA()); targetAssociation->setEndB(association->endB()); }
void MDependency::setTarget(const Uid &target) { if (_direction == B_TO_A) { setEndA(target); } else { setEndB(target); } }
void MDependency::setSource(const Uid &source) { if (_direction == B_TO_A) { setEndB(source); } else { setEndA(source); } }
void DUpdateVisitor::visitMAssociation(const MAssociation *association) { auto dassociation = dynamic_cast<DAssociation *>(m_target); QMT_CHECK(dassociation); DAssociationEnd endA; endA.setName(association->endA().name()); endA.setCardinatlity(association->endA().cardinality()); endA.setNavigable(association->endA().isNavigable()); endA.setKind(association->endA().kind()); if (isUpdating(endA != dassociation->endA())) dassociation->setEndA(endA); DAssociationEnd endB; endB.setName(association->endB().name()); endB.setCardinatlity(association->endB().cardinality()); endB.setNavigable(association->endB().isNavigable()); endB.setKind(association->endB().kind()); if (isUpdating(endB != dassociation->endB())) dassociation->setEndB(endB); visitMRelation(association); }
void MInheritance::setBase(const Uid &base) { setEndB(base); }