public void init(java.util.List<Pair<String, TextWithImports>> data) {
   myData.clear();
   for (Iterator<Pair<String, TextWithImports>> it = data.iterator(); it.hasNext(); ) {
     final Pair<String, TextWithImports> pair = it.next();
     myData.add(new Row(pair.getFirst(), pair.getSecond()));
   }
 }
 public List<Pair<String, TextWithImports>> getExpressions() {
   final ArrayList<Pair<String, TextWithImports>> pairs =
       new ArrayList<Pair<String, TextWithImports>>(myData.size());
   for (Iterator<Row> it = myData.iterator(); it.hasNext(); ) {
     final Row row = it.next();
     pairs.add(new Pair<String, TextWithImports>(row.name, row.value));
   }
   return pairs;
 }
 public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
   if (rowIndex >= getRowCount()) {
     return;
   }
   final Row row = myData.get(rowIndex);
   switch (columnIndex) {
     case NAME_TABLE_COLUMN:
       row.name = (String) aValue;
       break;
     case EXPRESSION_TABLE_COLUMN:
       row.value = (TextWithImports) aValue;
       break;
   }
 }
 public Object getValueAt(int rowIndex, int columnIndex) {
   if (rowIndex >= getRowCount()) {
     return null;
   }
   final Row row = myData.get(rowIndex);
   switch (columnIndex) {
     case NAME_TABLE_COLUMN:
       return row.name;
     case EXPRESSION_TABLE_COLUMN:
       return row.value;
     default:
       return null;
   }
 }
 public void clear() {
   myData.clear();
   fireTableDataChanged();
 }
 public TextWithImports getExpressionAt(int row) {
   return (row >= 0 && row < myData.size()) ? myData.get(row).value : null;
 }
 public String getNameAt(int row) {
   return (row >= 0 && row < myData.size()) ? myData.get(row).name : null;
 }
 public void removeRow(final int row) {
   if (row >= 0 && row < myData.size()) {
     myData.remove(row);
     fireTableRowsDeleted(row, row);
   }
 }
 public void addRow(final String name, final TextWithImports expressionWithImports) {
   myData.add(new Row(name, expressionWithImports));
   final int lastRow = myData.size() - 1;
   fireTableRowsInserted(lastRow, lastRow);
 }
 public int getRowCount() {
   return myData.size();
 }