data: Saving virtual abstraction of methods as TokenComponentAbstraction
This commit is contained in:
@@ -174,6 +174,7 @@ Id Storage::onMethodParsed(
|
||||
LOG_ERROR("Method needs to have access type [public, protected, private] but has none.");
|
||||
}
|
||||
addAccess(node, access);
|
||||
addAbstraction(node, abstraction);
|
||||
|
||||
addTokenLocation(node, location);
|
||||
addTokenLocation(node, scopeLocation, true);
|
||||
@@ -655,6 +656,31 @@ TokenComponentAccess* Storage::addAccess(Node* node, ParserClient::AccessType ac
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TokenComponentAbstraction::AbstractionType Storage::convertAbstractionType(ParserClient::AbstractionType abstraction) const
|
||||
{
|
||||
switch (abstraction)
|
||||
{
|
||||
case ABSTRACTION_VIRTUAL:
|
||||
return TokenComponentAbstraction::ABSTRACTION_VIRTUAL;
|
||||
case ABSTRACTION_PURE_VIRTUAL:
|
||||
return TokenComponentAbstraction::ABSTRACTION_PURE_VIRTUAL;
|
||||
case ABSTRACTION_NONE:
|
||||
return TokenComponentAbstraction::ABSTRACTION_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
TokenComponentAbstraction* Storage::addAbstraction(Node* node, ParserClient::AbstractionType abstraction)
|
||||
{
|
||||
if (abstraction != ABSTRACTION_NONE)
|
||||
{
|
||||
std::shared_ptr<TokenComponentAbstraction> ptr =
|
||||
std::make_shared<TokenComponentAbstraction>(convertAbstractionType(abstraction));
|
||||
node->addComponentAbstraction(ptr);
|
||||
return ptr.get();
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Edge* Storage::addTypeEdge(Node* node, Edge::EdgeType edgeType, const DataType& type)
|
||||
{
|
||||
Node* typeNode = m_graph.createNodeHierarchy(type.getRawTypeName());
|
||||
|
||||
Reference in New Issue
Block a user