function [headings, definitionList] = profCompareReportColumnHeadings(columns, ~, ~, definitionList)
%PROFCOMPAREREPORTCOLUMNHEADINGS returns column headings for profiling 
%report in the compare section

%   Copyright 2019 The MathWorks, Inc.

if isempty(definitionList)
    definitionList = containers.Map('KeyType', 'char' ,'ValueType', 'any');
end

numCols = length(columns);
headings = cell(1, numCols);

for i=1:numCols
    switch columns(i)
      case coder.profile.ResultColumns.Model
          headings{i} = DAStudio.message('CoderProfile:ExecutionTime:ColumnHeadingSection');
      case coder.profile.ResultColumns.MaxTurnaround
          headings{i} = sprintf...
              ('<a title="%s">%s</a>', ...
              DAStudio.message('CoderProfile:ExecutionTime:MaxTurnaroundTimeCmpTooltip'), ...
              DAStudio.message('CoderProfile:ExecutionTime:MaxTurnaroundTimeCmp'));
      case coder.profile.ResultColumns.AverageTurnaround
          headings{i} = sprintf...
              ('<a title="%s">%s</a>', ...
              DAStudio.message('CoderProfile:ExecutionTime:AvTurnaroundTimeCmpTooltip'),...
              DAStudio.message('CoderProfile:ExecutionTime:AvTurnaroundTimeCmp'));
      case coder.profile.ResultColumns.MaxRealTimeExecution
          headings{i} = sprintf...
              ('<a title="%s">%s</a>', ...
              DAStudio.message('CoderProfile:ExecutionTime:MaxExecutionTimeCmpTooltip'),...
              DAStudio.message('CoderProfile:ExecutionTime:MaxExecutionTimeCmp'));
        case coder.profile.ResultColumns.MaxNonRealTimeExecution
            headings{i} = sprintf...
                ('<a title="%s">%s</a>', ...
                DAStudio.message('CoderProfile:ExecutionTime:MaxExecutionTimeCmpTooltip'),...
                DAStudio.message('CoderProfile:ExecutionTime:MaxExecutionTimeCmp'));
        case coder.profile.ResultColumns.AverageRealTimeExecution
            headings{i} = sprintf...
                ('<a title="%s">%s</a>', ...
                DAStudio.message('CoderProfile:ExecutionTime:AvExecutionTimeCmpTooltip'),...
                DAStudio.message('CoderProfile:ExecutionTime:AvExecutionTimeCmp'));
        case coder.profile.ResultColumns.AverageNonRealTimeExecution
            headings{i} = sprintf...
                ('<a title="%s">%s</a>', ...
                DAStudio.message('CoderProfile:ExecutionTime:AvExecutionTimeCmpTooltip'),...
                DAStudio.message('CoderProfile:ExecutionTime:AvExecutionTimeCmp'));
        case coder.profile.ResultColumns.MaxSelf
            headings{i} = sprintf...
                ('<a title="%s">%s</a>', ...
                DAStudio.message('CoderProfile:ExecutionTime:MaxSelfTimeCmpTooltip'),...
                DAStudio.message('CoderProfile:ExecutionTime:MaxSelfTimeCmp'));
        case coder.profile.ResultColumns.AverageSelf
            headings{i} = sprintf...
                ('<a title="%s">%s</a>', ...
                DAStudio.message('CoderProfile:ExecutionTime:AvSelfTimeCmpTooltip'),...
                DAStudio.message('CoderProfile:ExecutionTime:AvSelfTimeCmp'));
        case {coder.profile.ResultColumns.Calls, ...
                coder.profile.ResultColumns.Links}
            headings{i} = '';
        otherwise
            assert(false, 'Invalid column specification');
    end
end
