423 {
424 assert(node.Type() == NodeType::Scalar);
425
426 auto relationship_name = node.as<std::string>();
427 if (relationship_name == "extension" ||
428 relationship_name == "inheritance") {
429 rhs = relationship_t::kExtension;
430 }
431 else if (relationship_name == "composition") {
432 rhs = relationship_t::kComposition;
433 }
434 else if (relationship_name == "aggregation") {
435 rhs = relationship_t::kAggregation;
436 }
437 else if (relationship_name == "containment") {
438 rhs = relationship_t::kContainment;
439 }
440 else if (relationship_name == "ownership") {
441 rhs = relationship_t::kOwnership;
442 }
443 else if (relationship_name == "association") {
444 rhs = relationship_t::kAssociation;
445 }
446 else if (relationship_name == "instantiation") {
447 rhs = relationship_t::kInstantiation;
448 }
449 else if (relationship_name == "friendship") {
450 rhs = relationship_t::kFriendship;
451 }
452 else if (relationship_name == "dependency") {
453 rhs = relationship_t::kDependency;
454 }
455 else if (relationship_name == "none") {
456 rhs = relationship_t::kNone;
457 }
458 else
459 return false;
460
461 return true;
462 }