question: set a group column - if the group value changes , a new row in inserted performing the calculations set in setgroupfunction . if you set multiple groups , start with the highest level e.g. country , region , city the data is assumed to be sorted to result in meaningful groups . a aa 1 a ab 2 b ba 3 b bb 4 after setgroup 0 a aa 1 a ab 2 a b ba 3 b bb 4 b concode_field_sep CLogger log concode_elem_sep String TABLE_ALIAS concode_elem_sep long serialVersionUID concode_elem_sep RModelData m_data concode_elem_sep boolean m_editable concode_elem_sep String FUNCTION_COUNT concode_elem_sep String FUNCTION_SUM concode_field_sep boolean isGroupRow concode_elem_sep void addColumn concode_elem_sep void addColumn concode_elem_sep int getRowCount concode_elem_sep RColumn getRColumn concode_elem_sep RColumn getRColumn concode_elem_sep void query concode_elem_sep String getColumnName concode_elem_sep Class<?> getColumnClass concode_elem_sep int getColumnCount concode_elem_sep ArrayList<ArrayList<Object>> getRows concode_elem_sep void addRow concode_elem_sep void addRow concode_elem_sep void addRow concode_elem_sep void addRow concode_elem_sep void setValueAt concode_elem_sep boolean isCellEditable concode_elem_sep Object getValueAt concode_elem_sep void moveRow concode_elem_sep void setFunction concode_elem_sep void setFunction concode_elem_sep RColumn getColumn concode_elem_sep int getColumnIndex
target: void function ( int arg0 ) { log . config ( "srini_string" + arg0 ) ; if ( arg0 < 0 || arg0 >= m_data . cols . size ( ) ) return ; Integer loc0 = new Integer ( arg0 ) ; if ( ! m_data . groups . contains ( loc0 ) ) m_data . groups . add ( loc0 ) ; }