001 /** 002 * www.jcoverage.com 003 * Copyright (C)2003 jcoverage ltd. 004 * 005 * This file is part of jcoverage. 006 * 007 * jcoverage is free software; you can redistribute it and/or modify 008 * it under the terms of the GNU General Public License as published 009 * by the Free Software Foundation; either version 2 of the License, 010 * or (at your option) any later version. 011 * 012 * jcoverage is distributed in the hope that it will be useful, but 013 * WITHOUT ANY WARRANTY; without even the implied warranty of 014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 015 * General Public License for more details. 016 * 017 * You should have received a copy of the GNU General Public License 018 * along with jcoverage; if not, write to the Free Software 019 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 020 * USA 021 * 022 */ 023 package com.jcoverage.coverage.reporting.collation; 024 025 import java.io.File; 026 027 import org.apache.log4j.Logger; 028 029 import com.jcoverage.reporting.AbstractLine; 030 import com.jcoverage.reporting.Column; 031 import com.jcoverage.reporting.Line; 032 import com.jcoverage.reporting.Page; 033 034 /** 035 * 036 */ 037 public class JavaFileLine extends AbstractLine implements Line { 038 039 static Logger logger=Logger.getLogger(JavaFileLine.class); 040 041 public static Column COLUMN_FILE_NAME=new Column("file",String.class); 042 public static Column COLUMN_PATH=new Column("sourcepath",String.class); 043 public static Column COLUMN_SOURCE_LINES=new Column("lines",Integer.class); 044 public static Column COLUMN_COVERAGE_PERCENT=new Column("%line",Integer.class); 045 public static Column COLUMN_COVERAGE=new Column("rate",Double.class); 046 public static Column COLUMN_BRANCH_COVERAGE_PERCENT=new Column("%branch",Integer.class); 047 public static Column COLUMN_BRANCH_COVERAGE=new Column("rate",Double.class); 048 049 JavaFilePage javaFilePage; 050 051 public Page instantiateDetailPage() { 052 javaFilePage=new JavaFilePage(); 053 return javaFilePage; 054 } 055 056 public String getClassName() { 057 return (String)getField(COLUMN_FILE_NAME); 058 } 059 060 public Object getField(Column column) { 061 062 Object o=super.getField(column); 063 064 if (column.equals(COLUMN_SOURCE_LINES)) { 065 return new Integer(getSourceLinesCount()); 066 067 } else if (column.equals(COLUMN_COVERAGE)) { 068 return new Double(javaFilePage.getLineCoverageRate()); 069 070 } else if (column.equals(COLUMN_COVERAGE_PERCENT)) { 071 return new Integer(FieldHelper.toPercent(javaFilePage.getLineCoverageRate())); 072 073 } else if (column.equals(COLUMN_BRANCH_COVERAGE)) { 074 return new Double(javaFilePage.getBranchCoverageRate()); 075 076 } else if (column.equals(COLUMN_BRANCH_COVERAGE_PERCENT)) { 077 return new Integer(FieldHelper.toPercent(javaFilePage.getBranchCoverageRate())); 078 079 } else { 080 return o; 081 082 } 083 } 084 085 public File getSourceFile() { 086 return new File((String)getField(COLUMN_PATH)); 087 } 088 089 public int getSourceLinesCount() { 090 return javaFilePage.getSourceLinesCount(); 091 } 092 093 }