blob: a95987e90d7129f6c51e1e4af0f29de2a1a27248 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import java.io.IOException;
/**
* internal representation of a Row
*
* @author Marc Johnson (marc_johnson27591@hotmail.com)
* @version CVS $Id$
*/
// package scope
class Row {
private HSSFRow _row;
private Sheet _sheet;
/**
* Constructor Row
* @param row
*/
Row(final HSSFRow row, final Sheet sheet) {
_row = row;
_sheet = sheet;
}
/**
* set a row's height
* @param points the height, in points
* @exception IOException if any arguments are illegal
*/
void setHeight(final double points) throws IOException {
if (!isValid(points)) {
throw new IOException("points " + points + " is out of range");
}
_row.setHeight((short) (points * 20));
}
/**
* get the row height of a specified row
* @return row height in 1/20 of a point
*/
short getHeight() {
return _row.getHeight();
}
/**
* create a cell in a specific column, with a specific type
* @param column the column number for the cell
* @param cellType the cell type, being an enum from the CellType class
* @return a new Cell object
* @exception IOException
*/
Cell createCell(final int column, final int cellType) throws IOException {
if (column < 0 || column > Short.MAX_VALUE) {
throw new IOException("Illegal column value: " + column);
}
HSSFCell hssfCell = _row.createCell((short)column);
hssfCell.setCellType(CellType.convertCellType(cellType));
Cell cell = new Cell(hssfCell, cellType);
cell.setStyle(_sheet.getCellStyleForRegion(_row.getRowNum(),
(short)column));
return cell;
}
private boolean isValid(double points) {
return ((points >= 0) && (points <= (((double)Short.MAX_VALUE) / 20)));
}
} // end package scope class Row