public TerminalRow getRow(int rowNumber) {
   initContent();
   // persisted snapshot rows may not be fully populated
   for (TerminalRow terminalRow : rows) {
     if (terminalRow.getRowNumber() == rowNumber) {
       return terminalRow;
     }
   }
   TerminalPersistedRow row = new TerminalPersistedRow();
   row.setRowNumber(rowNumber);
   return row;
 }
 public List<TerminalRow> getRows() {
   // initialize row length (not persisted as part of row)
   for (TerminalRow terminalRow : rows) {
     ((TerminalPersistedRow) terminalRow).setLength(getSize().getColumns());
   }
   return rows;
 }