code: boolean reserve(int column, int size) {
          if ((column < 0) || ((column + size) > columns)) throw new IndexOutOfBoundsException("reserve - incorrect column/size");
          
          for(int i=column; i < column + size; i++)
          {
              if (reserved[i]) {
                  // undo reserve
                  for(int j=i; j >= column; j--) {
                      reserved[j] = false;
                  }
                  return false;
              }
              reserved[i] = true;
          }
          return true;
      }
docs: Reserves a <CODE>Cell</CODE> in the <CODE>Row</CODE>.
  
  @param   column  the column that has to be reserved.
  @param   size    the number of columns
  @return  <CODE>true</CODE> if the column was reserved, <CODE>false</CODE> if not.