IncTable.java

1
/*
2
 * Copyright 2004 Paulo Soares
3
 *
4
 * The contents of this file are subject to the Mozilla Public License Version 1.1
5
 * (the "License"); you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at http://www.mozilla.org/MPL/
7
 *
8
 * Software distributed under the License is distributed on an "AS IS" basis,
9
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
10
 * for the specific language governing rights and limitations under the License.
11
 *
12
 * The Original Code is 'iText, a free JAVA-PDF library'.
13
 *
14
 * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
15
 * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
16
 * All Rights Reserved.
17
 * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
18
 * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
19
 *
20
 * Contributor(s): all the names of the contributors are added in the source code
21
 * where applicable.
22
 *
23
 * Alternatively, the contents of this file may be used under the terms of the
24
 * LGPL license (the "GNU LIBRARY GENERAL PUBLIC LICENSE"), in which case the
25
 * provisions of LGPL are applicable instead of those above.  If you wish to
26
 * allow use of your version of this file only under the terms of the LGPL
27
 * License and not to allow others to use your version of this file under
28
 * the MPL, indicate your decision by deleting the provisions above and
29
 * replace them with the notice and other provisions required by the LGPL.
30
 * If you do not delete the provisions above, a recipient may use your version
31
 * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
32
 *
33
 * This library is free software; you can redistribute it and/or modify it
34
 * under the terms of the MPL as stated above or under the terms of the GNU
35
 * Library General Public License as published by the Free Software Foundation;
36
 * either version 2 of the License, or any later version.
37
 *
38
 * This library is distributed in the hope that it will be useful, but WITHOUT
39
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
40
 * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
41
 * details.
42
 *
43
 * If you didn't download this code from the following link, you should check if
44
 * you aren't using an obsolete version:
45
 * http://www.lowagie.com/iText/
46
 */
47
48
package com.lowagie.text.html.simpleparser;
49
50
import java.util.*;
51
52
import com.lowagie.text.pdf.PdfPCell;
53
import com.lowagie.text.pdf.PdfPTable;
54
55
/**
56
 *
57
 * @author  psoares
58
 */
59
public class IncTable {
60
    private Map<String, String> props = new HashMap<>();
61
    private List<List<PdfPCell>> rows = new ArrayList<>();
62
    private List<PdfPCell> cols;
63
    /** Creates a new instance of IncTable */
64
    public IncTable(Map<String, String> props) {
65 1 1. : removed call to java/util/Map::putAll → NO_COVERAGE
        this.props.putAll(props);
66
    }
67
    
68
    public void addCol(PdfPCell cell) {
69 1 1. addCol : negated conditional → NO_COVERAGE
        if (cols == null)
70
            cols = new ArrayList<>();
71
        cols.add(cell);
72
    }
73
    
74
    public void addCols(List<PdfPCell> ncols) {
75 1 1. addCols : negated conditional → NO_COVERAGE
        if (cols == null)
76
            cols = new ArrayList<>(ncols);
77
        else
78
            cols.addAll(ncols);
79
    }
80
    
81
    public void endRow() {
82 1 1. endRow : negated conditional → NO_COVERAGE
        if (cols != null) {
83 1 1. endRow : removed call to java/util/Collections::reverse → NO_COVERAGE
            Collections.reverse(cols);
84
            rows.add(cols);
85
            cols = null;
86
        }
87
    }
88
    
89
    public List<List<PdfPCell>> getRows() {
90
        return rows;
91
    }
92
    
93
    public PdfPTable buildTable() {
94 1 1. buildTable : negated conditional → NO_COVERAGE
        if (rows.isEmpty())
95 1 1. buildTable : mutated return of Object value for com/lowagie/text/html/simpleparser/IncTable::buildTable to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
            return new PdfPTable(1);
96
        int ncol = 0;
97
        for (PdfPCell pCell : rows.get(0)) {
98 1 1. buildTable : Replaced integer addition with subtraction → NO_COVERAGE
            ncol += pCell.getColspan();
99
        }
100
        PdfPTable table = new PdfPTable(ncol);
101
        String width = props.get("width");
102 1 1. buildTable : negated conditional → NO_COVERAGE
        if (width == null)
103 1 1. buildTable : removed call to com/lowagie/text/pdf/PdfPTable::setWidthPercentage → NO_COVERAGE
            table.setWidthPercentage(100);
104
        else {
105 1 1. buildTable : negated conditional → NO_COVERAGE
            if (width.endsWith("%"))
106 2 1. buildTable : Replaced integer subtraction with addition → NO_COVERAGE
2. buildTable : removed call to com/lowagie/text/pdf/PdfPTable::setWidthPercentage → NO_COVERAGE
                table.setWidthPercentage(Float.parseFloat(width.substring(0, width.length() - 1)));
107
            else {
108 1 1. buildTable : removed call to com/lowagie/text/pdf/PdfPTable::setTotalWidth → NO_COVERAGE
                table.setTotalWidth(Float.parseFloat(width));
109 1 1. buildTable : removed call to com/lowagie/text/pdf/PdfPTable::setLockedWidth → NO_COVERAGE
                table.setLockedWidth(true);
110
            }
111
        }
112
        for (List<PdfPCell> col : rows) {
113
            for (PdfPCell pdfPCell : col) {
114 1 1. buildTable : removed call to com/lowagie/text/pdf/PdfPTable::addCell → NO_COVERAGE
                table.addCell(pdfPCell);
115
            }
116
        }
117 1 1. buildTable : mutated return of Object value for com/lowagie/text/html/simpleparser/IncTable::buildTable to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
        return table;
118
    }
119
}

Mutations

65

1.1
Location :
Killed by : none
removed call to java/util/Map::putAll → NO_COVERAGE

69

1.1
Location : addCol
Killed by : none
negated conditional → NO_COVERAGE

75

1.1
Location : addCols
Killed by : none
negated conditional → NO_COVERAGE

82

1.1
Location : endRow
Killed by : none
negated conditional → NO_COVERAGE

83

1.1
Location : endRow
Killed by : none
removed call to java/util/Collections::reverse → NO_COVERAGE

94

1.1
Location : buildTable
Killed by : none
negated conditional → NO_COVERAGE

95

1.1
Location : buildTable
Killed by : none
mutated return of Object value for com/lowagie/text/html/simpleparser/IncTable::buildTable to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

98

1.1
Location : buildTable
Killed by : none
Replaced integer addition with subtraction → NO_COVERAGE

102

1.1
Location : buildTable
Killed by : none
negated conditional → NO_COVERAGE

103

1.1
Location : buildTable
Killed by : none
removed call to com/lowagie/text/pdf/PdfPTable::setWidthPercentage → NO_COVERAGE

105

1.1
Location : buildTable
Killed by : none
negated conditional → NO_COVERAGE

106

1.1
Location : buildTable
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

2.2
Location : buildTable
Killed by : none
removed call to com/lowagie/text/pdf/PdfPTable::setWidthPercentage → NO_COVERAGE

108

1.1
Location : buildTable
Killed by : none
removed call to com/lowagie/text/pdf/PdfPTable::setTotalWidth → NO_COVERAGE

109

1.1
Location : buildTable
Killed by : none
removed call to com/lowagie/text/pdf/PdfPTable::setLockedWidth → NO_COVERAGE

114

1.1
Location : buildTable
Killed by : none
removed call to com/lowagie/text/pdf/PdfPTable::addCell → NO_COVERAGE

117

1.1
Location : buildTable
Killed by : none
mutated return of Object value for com/lowagie/text/html/simpleparser/IncTable::buildTable to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.4.2