public void ProcessData(IMatrixData data, Parameters param, ref IMatrixData[] supplTables, ref IDocumentData[] documents, ProcessInfo processInfo) { int[] numColInds = param.GetParam <int[]>("Numerical rows").Value; int[] multiNumColInds = param.GetParam <int[]>("Multi-numerical rows").Value; int[] catColInds = param.GetParam <int[]>("Categorical rows").Value; int[] textColInds = param.GetParam <int[]>("Text rows").Value; data.NumericRows = ArrayUtils.SubList(data.NumericRows, numColInds); data.NumericRowNames = ArrayUtils.SubList(data.NumericRowNames, numColInds); data.NumericRowDescriptions = ArrayUtils.SubList(data.NumericRowDescriptions, numColInds); data.MultiNumericRows = ArrayUtils.SubList(data.MultiNumericRows, multiNumColInds); data.MultiNumericRowNames = ArrayUtils.SubList(data.MultiNumericRowNames, multiNumColInds); data.MultiNumericRowDescriptions = ArrayUtils.SubList(data.MultiNumericRowDescriptions, multiNumColInds); data.CategoryRows = PerseusPluginUtils.GetCategoryRows(data, catColInds); data.CategoryRowNames = ArrayUtils.SubList(data.CategoryRowNames, catColInds); data.CategoryRowDescriptions = ArrayUtils.SubList(data.CategoryRowDescriptions, catColInds); data.StringRows = ArrayUtils.SubList(data.StringRows, textColInds); data.StringRowNames = ArrayUtils.SubList(data.StringRowNames, textColInds); data.StringRowDescriptions = ArrayUtils.SubList(data.StringRowDescriptions, textColInds); }