public static void convertRecord(Record rec) { if (rec == null) return; if (rec.getLeader() != null) rec.setLeader(convertString(rec.getLeader())); for (Field field : rec.getFields()) { if (field.isControlField()) { String newData = convertString(field.getValue()); field.setValue(newData); } else { for (Subfield subfield : field.getSubfields()) { String newData = convertString(subfield.getValue()); subfield.setValue(newData); } } } }
private List<String> indexRecordRepoxMarc(RecordRepox repoxRecord) { Record record = (repoxRecord instanceof RecordRepoxMarc ? ((RecordRepoxMarc) repoxRecord).getRecord() : MarcXChangeDom4jBuilder.parseRecord(repoxRecord.getDom())); List<String> idxVals = new ArrayList<String>(); List<Field> fields = record.getField(tag); for (Field f : fields) { if (subfield == null) { String val = f.getValue(); if (val != null) { idxVals.add(IndexUtil.encode(val)); } } else { for (String val : f.getSubfieldValues(subfield)) { String[] indVals = IndexUtil.encode(val).split(" "); for (String word : indVals) { idxVals.add(word); } } } } return idxVals; }