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

pkiraly / metadata-qa-marc / #1527

22 Aug 2025 02:21PM UTC coverage: 90.345%. Remained the same
#1527

push

pkiraly
Improve timeline handling

5191 of 6416 new or added lines in 219 files covered. (80.91%)

886 existing lines in 78 files now uncovered.

36717 of 40641 relevant lines covered (90.34%)

0.9 hits per line

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

68.42
/src/main/java/de/gwdg/metadataqa/marc/utils/pica/reader/PicaNormalizedReader.java
1
package de.gwdg.metadataqa.marc.utils.pica.reader;
2

3
import de.gwdg.metadataqa.marc.MarcFactory;
4
import de.gwdg.metadataqa.marc.utils.pica.reader.model.PicaLine;
5
import org.marc4j.marc.Record;
6

7
import java.io.BufferedReader;
8
import java.io.FileReader;
9
import java.io.IOException;
10
import java.io.InputStream;
11
import java.io.InputStreamReader;
12
import java.util.ArrayList;
13
import java.util.List;
14
import java.util.logging.Level;
15
import java.util.logging.Logger;
16
import java.util.regex.Pattern;
17

18
public class PicaNormalizedReader extends PicaReader {
19

20
  private static final Logger logger = Logger.getLogger(PicaNormalizedReader.class.getCanonicalName());
1✔
21

22
  private BufferedReader bufferedReader = null;
1✔
23
  private String line = null;
1✔
24
  private String fieldSeparator = "\u001E";
1✔
25
  private String defauultSubfieldSeparator = "\u001F";
1✔
26
  private String subfieldSeparator = "\u001F";
1✔
27

28
  public PicaNormalizedReader(String fileName) {
1✔
29
    try {
30
      bufferedReader = new BufferedReader(new FileReader(fileName));
1✔
31
    } catch (IOException e) {
×
UNCOV
32
      logger.log(Level.WARNING, "error in PicaReader()", e);
×
33
    }
1✔
34
  }
1✔
35

UNCOV
36
  public PicaNormalizedReader(InputStream stream, String encoding) {
×
37
    try {
38
      bufferedReader = new BufferedReader(new InputStreamReader(stream, encoding));
×
39
    } catch (IOException e) {
×
40
      logger.log(Level.WARNING, "error in PicaReader()", e);
×
41
    }
×
UNCOV
42
  }
×
43

44
  @Override
45
  public boolean hasNext() {
46
    if (line == null)
1✔
47
      checkSubfieldSeparator();
1✔
48
    try {
49
      line = bufferedReader.readLine();
1✔
50
     } catch (IOException e) {
×
UNCOV
51
      logger.log(Level.WARNING, "error in hasNext()", e);
×
52
    }
1✔
53
    return (line != null);
1✔
54
  }
55

56
  @Override
57
  public Record next() {
58
    Record marc4jRecord = null;
1✔
59
    String[] fields = line.split(Pattern.quote(fieldSeparator));
1✔
60
    List<PicaLine> lines = new ArrayList<>();
1✔
61
    for (String field : fields) {
1✔
62
      PicaLine picaLine = new PicaLine(field, subfieldSeparator);
1✔
63
      if (picaLine.isValidTag())
1✔
64
        lines.add(picaLine);
1✔
65
    }
66
    marc4jRecord = MarcFactory.createRecordFromPica(lines, idTag, idCode, schema);
1✔
67

68
    return marc4jRecord;
1✔
69
  }
70

71
  public String getFieldSeparator() {
UNCOV
72
    return fieldSeparator;
×
73
  }
74

75
  private void checkSubfieldSeparator() {
76
    if (subfieldSeparator == null)
1✔
UNCOV
77
      subfieldSeparator = defauultSubfieldSeparator;
×
78
  }
1✔
79
}
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