columnar::ColumnarToolDataArray Node1 columnar::ColumnarToolData Array Node2 std::unordered_map < ContainerId, std:: string > + keys Node2->Node1 +containerNames Node3 std::string Node3->Node2 +elements Node7 std::unordered_map < std::string, columnar ::ColumnDataArray > Node3->Node7 +keys Node12 columnar::ColumnInfo + index + type + accessMode + isOffset + isOptional Node3->Node12 +replacesColumn +name +offsetName +linkToName Node4 std::basic_string< char > Node4->Node3 Node5 columnar::ColumnarTool < columnar::ColumnarModeArray > Node5->Node1 +mainTool Node6 std::vector< columnar ::ColumnarTool< columnar ::ColumnarModeArray > * > Node5->Node6 +elements Node6->Node1 +sharedTools Node7->Node1 +columns Node8 columnar::ColumnDataArray + ColumnDataArray() + ColumnDataArray() + operator=() + ~ColumnDataArray() + empty() + info() + addAccessor() + removeAccessor() + mergeData() + updateColumnRef() + setIndex() Node8->Node7 +elements Node9 std::vector< columnar ::ColumnAccessorDataArray * > Node9->Node8 -m_accessors Node12->Node8 -m_info