-
Notifications
You must be signed in to change notification settings - Fork 449
Expand file tree
/
Copy pathRulings.java
More file actions
61 lines (51 loc) · 1.77 KB
/
Rulings.java
File metadata and controls
61 lines (51 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package technology.tabula;
import java.util.ArrayList;
import java.util.List;
public class Rulings {
private List<Ruling> rulings = new ArrayList<>();
private List<Ruling> cleanRulings = new ArrayList<>();
// private float minCharWidth;
// private float minCharHeight;
public Rulings(List<Ruling> rulings) {
this.rulings = rulings;
// this.minCharWidth = minCharWidth;
// this.minCharHeight = minCharHeight;
}
public List<Ruling> getRulings() {
if (rulings == null || rulings.isEmpty()) {
return rulings;
}
List<Ruling> verticalRulingLines = getVerticalRulings();
List<Ruling> horizontalRulingLines = getHorizontalRulings();
cleanRulings = new ArrayList<>(verticalRulingLines);
cleanRulings.addAll(horizontalRulingLines);
return cleanRulings;
}
public List<Ruling> getVerticalRulings() {
List<Ruling> verticalRulings = new ArrayList<>();
for (Ruling ruling : rulings) {
if (ruling.vertical()) {
verticalRulings.add(ruling);
}
}
return Ruling.collapseOrientedRulings(verticalRulings);
}
public List<Ruling> getHorizontalRulings() {
List<Ruling> horizontalRulings = new ArrayList<>();
for (Ruling ruling : rulings) {
if (ruling.vertical()) {
horizontalRulings.add(ruling);
}
}
return Ruling.collapseOrientedRulings(horizontalRulings);
}
public void addRuling(Ruling ruling) {
if (ruling.oblique()) {
throw new UnsupportedOperationException("Can't add an oblique ruling.");
}
rulings.add(ruling);
}
public List<Ruling> getUnprocessedRulings() {
return rulings;
}
}