void PatternNode::findNodesToMatchInDatabase(DataNode *database, std::vector<DataNode*> &outNodes) { if (database == NULL) return; if (database->getName() == condition->name) { outNodes.push_back(database); } if (database->isGroup()) { DataGroup* group = (DataGroup*)database; DataNode* node = group->getLeftMostChild(); while (node != NULL) { findNodesToMatchInDatabase(node, outNodes); node = node->getRightSibling(); } } }