001: /**
002: * ========================================
003: * JFreeReport : a free Java report library
004: * ========================================
005: *
006: * Project Info: http://reporting.pentaho.org/
007: *
008: * (C) Copyright 2000-2007, by Object Refinery Limited, Pentaho Corporation and Contributors.
009: *
010: * This library is free software; you can redistribute it and/or modify it under the terms
011: * of the GNU Lesser General Public License as published by the Free Software Foundation;
012: * either version 2.1 of the License, or (at your option) any later version.
013: *
014: * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
015: * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
016: * See the GNU Lesser General Public License for more details.
017: *
018: * You should have received a copy of the GNU Lesser General Public License along with this
019: * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
020: * Boston, MA 02111-1307, USA.
021: *
022: * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
023: * in the United States and other countries.]
024: *
025: * ------------
026: * $Id: TableModelInfo.java 3048 2007-07-28 18:02:42Z tmorgner $
027: * ------------
028: * (C) Copyright 2000-2005, by Object Refinery Limited.
029: * (C) Copyright 2005-2007, by Pentaho Corporation.
030: */package org.jfree.report.modules.misc.tablemodel;
031:
032: import javax.swing.table.TableModel;
033:
034: /**
035: * A utility class that prints out information about a TableModel.
036: *
037: * @author Thomas Morgner
038: */
039: public final class TableModelInfo {
040: /**
041: * DefaultConstructor.
042: */
043: private TableModelInfo() {
044: }
045:
046: /**
047: * Prints a table model to standard output.
048: *
049: * @param mod the model.
050: */
051: public static void printTableModel(final TableModel mod) {
052: System.out.println("Tablemodel contains " + mod.getRowCount()
053: + " rows.");
054: for (int i = 0; i < mod.getColumnCount(); i++) {
055: System.out.println("Column: " + i + " Name = "
056: + mod.getColumnName(i) + "; DataType = "
057: + mod.getColumnClass(i));
058: }
059:
060: System.out.println("Checking the data inside");
061: for (int rows = 0; rows < mod.getRowCount(); rows++) {
062: for (int i = 0; i < mod.getColumnCount(); i++) {
063: final Object value = mod.getValueAt(rows, i);
064: final Class c = mod.getColumnClass(i);
065: if (value == null) {
066: System.out.println("ValueAt (" + rows + ", " + i
067: + ") is null");
068: } else {
069: if (c.isAssignableFrom(value.getClass()) == false) {
070: System.out.println("ValueAt (" + rows + ", "
071: + i + ") is not assignable from " + c);
072: }
073: if (c.equals(Object.class)) {
074: System.out.println("ValueAt (" + rows + ", "
075: + i
076: + ") is in a generic column and is of "
077: + "type " + value.getClass());
078: }
079: }
080: }
081: }
082: }
083:
084: /**
085: * Prints a table model to standard output.
086: *
087: * @param mod the model.
088: */
089: public static void printTableModelContents(final TableModel mod) {
090: System.out.println("Tablemodel contains " + mod.getRowCount()
091: + " rows.");
092: for (int i = 0; i < mod.getColumnCount(); i++) {
093: System.out.println("Column: " + i + " Name = "
094: + mod.getColumnName(i) + "; DataType = "
095: + mod.getColumnClass(i));
096: }
097:
098: System.out.println("Checking the data inside");
099: for (int rows = 0; rows < mod.getRowCount(); rows++) {
100: for (int i = 0; i < mod.getColumnCount(); i++) {
101: final Object value = mod.getValueAt(rows, i);
102: //final Class c = mod.getColumnClass(i);
103: System.out.println("ValueAt (" + rows + ", " + i
104: + ") is " + value);
105: }
106: }
107: }
108: }
|