use of org.marc4j.marc.Record in project RecordManager2 by moravianlibrary.
the class MarcLineStreamReader method nextRecord.
private Record nextRecord() {
try {
Record rec = null;
String newLine;
while (br.ready()) {
newLine = br.readLine();
if (newLine.isEmpty())
return rec;
if (LDR_PATTERN.matcher(newLine).find())
rec = factory.newRecord();
parseLine(rec, newLine);
}
return rec;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
use of org.marc4j.marc.Record in project RecordManager2 by moravianlibrary.
the class CbvkMarcInterceptor method intercept.
@Override
public byte[] intercept() {
if (super.getRecord() == null) {
return new byte[0];
}
MarcRecord marc = new MarcRecordImpl(super.getRecord());
Record newRecord = new RecordImpl();
newRecord.setLeader(getRecord().getLeader());
for (ControlField cf : super.getRecord().getControlFields()) {
newRecord.addVariableField(cf);
}
Map<String, List<DataField>> dfMap = marc.getAllFields();
for (String tag : new TreeSet<String>(dfMap.keySet())) {
// sorted tags
for (DataField df : dfMap.get(tag)) {
// remove field 520
if (df.getTag().equals("520"))
continue;
processField996(df);
newRecord.addVariableField(df);
}
}
return new MarcRecordImpl(newRecord).export(IOFormat.XML_MARC).getBytes(StandardCharsets.UTF_8);
}
Aggregations