• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

hazendaz / displaytag / 1753

12 Feb 2026 03:17AM UTC coverage: 77.321% (-0.01%) from 77.334%
1753

push

github

web-flow
Merge pull request #1102 from hazendaz/renovate/javax-support-logback-monorepo

Update dependency ch.qos.logback:logback-classic to v1.5.29 (javax-support)

1438 of 2003 branches covered (71.79%)

Branch coverage included in aggregate %.

4034 of 5074 relevant lines covered (79.5%)

0.8 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

91.3
/displaytag/src/main/java/org/displaytag/model/RowIterator.java
1
/*
2
 * SPDX-License-Identifier: MIT
3
 * See LICENSE file for details.
4
 *
5
 * Copyright 2002-2026 Fabrizio Giustina, the Displaytag team
6
 */
7
package org.displaytag.model;
8

9
import java.util.Iterator;
10
import java.util.List;
11

12
import org.displaytag.decorator.TableDecorator;
13
import org.slf4j.Logger;
14
import org.slf4j.LoggerFactory;
15

16
/**
17
 * Iterator on table rows.
18
 */
19
public class RowIterator {
20

21
    /**
22
     * logger.
23
     */
24
    private static Logger log = LoggerFactory.getLogger(RowIterator.class);
1✔
25

26
    /**
27
     * internal iterator for Rows.
28
     */
29
    private final Iterator<Row> iterator;
30

31
    /**
32
     * row number counter.
33
     */
34
    private int rowNumber;
35

36
    /**
37
     * reference to the table TableDecorator.
38
     */
39
    private final TableDecorator decorator;
40

41
    /**
42
     * id inherited from the TableTag (needed only for logging).
43
     */
44
    private String id;
45

46
    /**
47
     * Starting offset for items n the current page. Needed to calculare the index in the original list
48
     */
49
    private final int pageOffset;
50

51
    /**
52
     * Constructor for RowIterator.
53
     *
54
     * @param rowList
55
     *            List containing Row objects
56
     * @param columnList
57
     *            List containing CellHeader objects
58
     * @param tableDecorator
59
     *            TableDecorator
60
     * @param offset
61
     *            Starting offset for items n the current page
62
     */
63
    protected RowIterator(final List<Row> rowList, final List<HeaderCell> columnList,
64
            final TableDecorator tableDecorator, final int offset) {
1✔
65
        this.iterator = rowList.iterator();
1✔
66
        this.rowNumber = 0;
1✔
67
        this.decorator = tableDecorator;
1✔
68
        this.pageOffset = offset;
1✔
69
    }
1✔
70

71
    /**
72
     * Setter for the tablemodel id.
73
     *
74
     * @param tableId
75
     *            same id of table tag, needed for logging
76
     */
77
    public void setId(final String tableId) {
78
        this.id = tableId;
1✔
79
    }
1✔
80

81
    /**
82
     * Check if a next row exist.
83
     *
84
     * @return boolean true if a new row
85
     */
86
    public boolean hasNext() {
87
        return this.iterator.hasNext();
1✔
88
    }
89

90
    /**
91
     * Gets the page offset.
92
     *
93
     * @return the page offset
94
     */
95
    public int getPageOffset() {
96
        return this.pageOffset;
1✔
97
    }
98

99
    /**
100
     * Returns the next row object.
101
     *
102
     * @return Row
103
     */
104
    public Row next() {
105

106
        final int currentRowNumber = this.rowNumber++;
1✔
107

108
        if (RowIterator.log.isDebugEnabled()) {
1!
109
            RowIterator.log.debug("[{}] rowIterator.next() row number={}", this.id, currentRowNumber);
×
110
        }
111

112
        final Row row = this.iterator.next();
1✔
113

114
        row.setRowNumber(currentRowNumber);
1✔
115

116
        if (this.decorator != null) {
1✔
117
            this.decorator.initRow(row.getObject(), currentRowNumber, currentRowNumber + this.getPageOffset());
1✔
118
        }
119

120
        return row;
1✔
121

122
    }
123

124
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc