// Path: src/main/java/uk/co/certait/htmlexporter/writer/AbstractTableRowWriter.java
// public abstract class AbstractTableRowWriter implements TableRowWriter {
// 	private TableCellWriter cellWriter;
// 	private RowTracker rowTracker;
// 
// 	public AbstractTableRowWriter(TableCellWriter cellWriter) {
// 		this.cellWriter = cellWriter;
// 		rowTracker = new RowTracker();
// 	}
// 
// 	public void writeRow(Element row, int rowIndex) {
// 		renderRow(row, rowIndex);
// 
// 		for (Element element : row.getAllElements()) {
// 			if (element.tag().getName().equals(TD_TAG) || element.tag().getName().equals(TH_TAG)) {
// 				int columnIndex = rowTracker.getNextColumnIndexForRow(rowIndex);
// 				cellWriter.writeCell(element, rowIndex, columnIndex);
// 
// 				int rowSpan = getRowSpan(element);
// 				int columnSpan = getColumnSpan(element);
// 
// 				rowTracker.addCell(rowIndex, columnIndex, rowSpan, columnSpan);
// 
// 				if (rowSpan > 1 || columnSpan > 1) {
// 					doMerge(rowIndex, columnIndex, rowSpan, columnSpan);
// 				}
// 			}
// 		}
// 	}
// 
// 	protected boolean isRowGrouped(Element row) {
// 		return row.hasAttr("");
// 	}
// 
// 	protected String[] getRowGroups(Element row) {
// 		return getAttributeValues(row, "");
// 	}
// 
// 	protected String[] getAttributeValues(Element element, String attributeName) {
// 		String values[] = null;
// 
// 		if (element.hasAttr(attributeName)) {
// 			values = element.attr(attributeName).toLowerCase().split(",");
// 
// 			for (String value : values) {
// 				value = value.trim().toLowerCase();
// 			}
// 		}
// 
// 		return values;
// 	}
// 
// 	protected int getColumnSpan(Element element) {
// 		int columnSpan = 1;
// 
// 		if (element.hasAttr("colspan")) {
// 			columnSpan = Integer.parseInt(element.attr("colspan"));
// 		}
// 
// 		return columnSpan;
// 	}
// 
// 	protected int getRowSpan(Element element) {
// 		int rowSpan = 1;
// 
// 		if (element.hasAttr("rowSpan")) {
// 			rowSpan = Integer.parseInt(element.attr("rowSpan"));
// 		}
// 
// 		return rowSpan;
// 	}
// 
// 	public abstract void renderRow(Element row, int rowIndex);
// 
// 	public abstract void doMerge(int rowIndex, int columnIndex, int rowSpan, int columnSpan);
// }
// 
// Path: src/main/java/uk/co/certait/htmlexporter/writer/TableCellWriter.java
// public interface TableCellWriter {
// 	public static final String COLUMN_SPAN_ATTRIBUTE = "colspan";
// 	public static final String DATA_GROUP_ATTRIBUTE = "data-group";
// 	public static final String DATA_GROUP_OUTPUT_ATTRIBUTE = "data-group-output";
// 	public static final String DATE_CELL_ATTRIBUTE = "data-date-cell-format";
// 	public static final String DATA_CELL_COMMENT_ATTRIBUTE = "data-cell-comment";
// 	public static final String DATA_CELL_COMMENT_DIMENSION_ATTRIBUTE = "data-cell-comment-dimension";
// 	public static final String DATA_TEXT_CELL = "data-text-cell";
// 	public static final String DATA_FREEZE_PANE_CELL = "data-freeze-pane-cell";
// 
// 	public void writeCell(Element cell, int row, int column);
// }


import org.jsoup.nodes.Element;
import org.odftoolkit.simple.table.Table;
import uk.co.certait.htmlexporter.writer.AbstractTableRowWriter;
import uk.co.certait.htmlexporter.writer.TableCellWriter;

/**
 * Copyright (C) 2012 alanhay <alanhay99@hotmail.com>
 *
 * Licensed 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 uk.co.certait.htmlexporter.writer.ods;



public class OdsTableRowWriter extends AbstractTableRowWriter {
	private Table table;


// Path: src/main/java/uk/co/certait/htmlexporter/writer/AbstractTableRowWriter.java
// public abstract class AbstractTableRowWriter implements TableRowWriter {
// 	private TableCellWriter cellWriter;
// 	private RowTracker rowTracker;
// 
// 	public AbstractTableRowWriter(TableCellWriter cellWriter) {
// 		this.cellWriter = cellWriter;
// 		rowTracker = new RowTracker();
// 	}
// 
// 	public void writeRow(Element row, int rowIndex) {
// 		renderRow(row, rowIndex);
// 
// 		for (Element element : row.getAllElements()) {
// 			if (element.tag().getName().equals(TD_TAG) || element.tag().getName().equals(TH_TAG)) {
// 				int columnIndex = rowTracker.getNextColumnIndexForRow(rowIndex);
// 				cellWriter.writeCell(element, rowIndex, columnIndex);
// 
// 				int rowSpan = getRowSpan(element);
// 				int columnSpan = getColumnSpan(element);
// 
// 				rowTracker.addCell(rowIndex, columnIndex, rowSpan, columnSpan);
// 
// 				if (rowSpan > 1 || columnSpan > 1) {
// 					doMerge(rowIndex, columnIndex, rowSpan, columnSpan);
// 				}
// 			}
// 		}
// 	}
// 
// 	protected boolean isRowGrouped(Element row) {
// 		return row.hasAttr("");
// 	}
// 
// 	protected String[] getRowGroups(Element row) {
// 		return getAttributeValues(row, "");
// 	}
// 
// 	protected String[] getAttributeValues(Element element, String attributeName) {
// 		String values[] = null;
// 
// 		if (element.hasAttr(attributeName)) {
// 			values = element.attr(attributeName).toLowerCase().split(",");
// 
// 			for (String value : values) {
// 				value = value.trim().toLowerCase();
// 			}
// 		}
// 
// 		return values;
// 	}
// 
// 	protected int getColumnSpan(Element element) {
// 		int columnSpan = 1;
// 
// 		if (element.hasAttr("colspan")) {
// 			columnSpan = Integer.parseInt(element.attr("colspan"));
// 		}
// 
// 		return columnSpan;
// 	}
// 
// 	protected int getRowSpan(Element element) {
// 		int rowSpan = 1;
// 
// 		if (element.hasAttr("rowSpan")) {
// 			rowSpan = Integer.parseInt(element.attr("rowSpan"));
// 		}
// 
// 		return rowSpan;
// 	}
// 
// 	public abstract void renderRow(Element row, int rowIndex);
// 
// 	public abstract void doMerge(int rowIndex, int columnIndex, int rowSpan, int columnSpan);
// }
// 
// Path: src/main/java/uk/co/certait/htmlexporter/writer/TableCellWriter.java
// public interface TableCellWriter {
// 	public static final String COLUMN_SPAN_ATTRIBUTE = "colspan";
// 	public static final String DATA_GROUP_ATTRIBUTE = "data-group";
// 	public static final String DATA_GROUP_OUTPUT_ATTRIBUTE = "data-group-output";
// 	public static final String DATE_CELL_ATTRIBUTE = "data-date-cell-format";
// 	public static final String DATA_CELL_COMMENT_ATTRIBUTE = "data-cell-comment";
// 	public static final String DATA_CELL_COMMENT_DIMENSION_ATTRIBUTE = "data-cell-comment-dimension";
// 	public static final String DATA_TEXT_CELL = "data-text-cell";
// 	public static final String DATA_FREEZE_PANE_CELL = "data-freeze-pane-cell";
// 
// 	public void writeCell(Element cell, int row, int column);
// }


// Path: src/main/java/uk/co/certait/htmlexporter/writer/ods/OdsTableRowWriter.java
import org.jsoup.nodes.Element;
import org.odftoolkit.simple.table.Table;
import uk.co.certait.htmlexporter.writer.AbstractTableRowWriter;
import uk.co.certait.htmlexporter.writer.TableCellWriter;

/**
 * Copyright (C) 2012 alanhay <alanhay99@hotmail.com>
 *
 * Licensed 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 uk.co.certait.htmlexporter.writer.ods;



public class OdsTableRowWriter extends AbstractTableRowWriter {
	private Table table;


	public OdsTableRowWriter(Table table, TableCellWriter cellWriter) {
