code: void cell(Cell cell) {
          int left = cell.getLeft();
          int right = cell.getRight();
          // first see if we've got a cell past the last col
          if (right > realColumnCount) {
              // are we past last col entirely?
              if (left == realColumnCount) {
                  // single col?
                  if (left + 1 != right) {
                      appendColumnRange(new ColumnRange(cell.elementName(), cell, left + 1, right));
                  }
                  realColumnCount = right;
                  return;
              } else {
                  // not past entirely
                  appendColumnRange(new ColumnRange(cell.elementName(), cell, realColumnCount, right));                
                  realColumnCount = right;
              }
          }
          while (currentColRange != null) {
              int hit = currentColRange.hits(left);
              if (hit == 0) {
                  ColumnRange newRange = currentColRange.removeColumn(left);
                  if (newRange == null) {
                      // zap a list item
                      if (previousColRange != null) {
                          previousColRange.setNext(currentColRange.getNext());
                      }
                      if (first == currentColRange) {
                          first = currentColRange.getNext();
                      }
                      if (last == currentColRange) {
                          last = previousColRange;
                      }
                      currentColRange = currentColRange.getNext();
                  } else {
                      if (last == currentColRange) {
                          last = newRange;
                      }
                      currentColRange = newRange;
                  }
                  return;
              } else if (hit == -1) {
                  return;
              } else if (hit == 1) {
                  previousColRange = currentColRange;
                  currentColRange = currentColRange.getNext();                                
              }
          }
      }
docs: Reports a cell whose positioning has been decided back to the table
  so that column bookkeeping can be done. (Called from
  <code>RowGroup</code>--not <code>TableChecker</code>.)
  
  @param cell a cell whose position has been calculated