@Override public void startRecord(final String identifier) { try { getReceiver().startRecord(identifier); } catch(final Exception e) { LOG.error(MSG_PATTERN, logPrefix, "StartRecord" + identifier); LOG.error(MSG_PATTERN, logPrefix, e); } }
private void emitStartRecord(final Attributes attributes) { final String recordId = attributes.getValue("", ID_ATTR); if (recordId == null) { getReceiver().startRecord(""); } else { getReceiver().startRecord(recordId); } }
@Override public void startRecord(final String identifier) { final String normalizedIdentifier = normalizeIds ? normalize(identifier) : identifier; getReceiver().startRecord(normalizedIdentifier); }
public static void process(final ListMap<String, String> listMap, final StreamReceiver receiver) { receiver.startRecord(listMap.getId()); for(Entry<String, List<String>> entry: listMap.entrySet()){ final String name = entry.getKey(); for(String value:entry.getValue()){ receiver.literal(name, value); } } receiver.endRecord(); }
@Test public void shouldEmitEmptyRecordIdIfNoEntryWithIdKeyIsFoundInMap() { final Map<String, String> map = new HashMap<>(); map.put("noid", "noid"); mapToStream.process(map); verify(receiver).startRecord(""); }
@Test public void shouldExtractPicaProductionNumberAfterRecordMarkerAsRecordId() { picaDecoder.process(RECORD_MARKER + FIELD_003AT_0_ID); verify(receiver).startRecord(RECORD_ID); }
@Test public void shouldExtractPicaProductionNumberAfterFieldEndMarkerAsRecordId() { picaDecoder.process(FIELD_END_MARKER + FIELD_003AT_0_ID); verify(receiver).startRecord(RECORD_ID); }
@Test public void shouldExtractCopyControlNumberWithThreeDigitOccurrenceAsRecordId() { picaDecoder.process(FIELD_203AT_100_0_ID); verify(receiver).startRecord(RECORD_ID); }
@Test public void shouldExtractPicaProductionNumberAfterFieldMarkerAsRecordId() { picaDecoder.process(FIELD_MARKER + FIELD_003AT_0_ID); verify(receiver).startRecord(RECORD_ID); }
@Test public void shouldEmitMapEntryAsLiteral() { final Map<String, String> map = new HashMap<>(); map.put("key", "value"); mapToStream.process(map); final InOrder ordered = inOrder(receiver); ordered.verify(receiver).startRecord(""); ordered.verify(receiver).literal("key", "value"); ordered.verify(receiver).endRecord(); }
@Test public void testSimple() { decoder.process("a,b,c"); final InOrder ordered = inOrder(receiver); ordered.verify(receiver).startRecord("1"); ordered.verify(receiver).literal("h1", "a"); ordered.verify(receiver).literal("h2", "b"); ordered.verify(receiver).literal("h3", "c"); ordered.verify(receiver).endRecord(); }
@Test public void shouldIgnoreIncompleteMatch() { picaDecoder.setIgnoreMissingIdn(true); picaDecoder.process("003@ " + FIELD_MARKER + FIELD_001AT_0_TEST); verify(receiver).startRecord(""); }
@Test public void shouldIgnoreMatchWithinFieldData() { picaDecoder.setIgnoreMissingIdn(true); picaDecoder.process(FIELD_001AT_0_TEST + FIELD_003AT_0_ID); verify(receiver).startRecord(""); }
@Test public void shouldParseRecordStartingWithRecordMarker() { picaDecoder.process( RECORD_MARKER + FIELD_001AT_0_TEST + FIELD_MARKER + FIELD_003AT_0_ID); final InOrder ordered = inOrder(receiver); ordered.verify(receiver).startRecord(RECORD_ID); verify001At0Test(ordered); verify003At0ID(ordered); ordered.verify(receiver).endRecord(); }
@Test public void shouldParseRecordEndingWithRecordMarker() { picaDecoder.process( FIELD_003AT_0_ID + FIELD_MARKER + FIELD_001AT_0_TEST + RECORD_MARKER); final InOrder ordered = inOrder(receiver); ordered.verify(receiver).startRecord(RECORD_ID); verify003At0ID(ordered); verify001At0Test(ordered); ordered.verify(receiver).endRecord(); }
@Test public void shouldParseMultiLineRecordFormat() { picaDecoder.process( RECORD_MARKER + FIELD_END_MARKER + FIELD_MARKER + FIELD_001AT_0_TEST + FIELD_END_MARKER + FIELD_MARKER + FIELD_003AT_0_ID + FIELD_END_MARKER); final InOrder ordered = inOrder(receiver); ordered.verify(receiver).startRecord(RECORD_ID); verify001At0Test(ordered); verify003At0ID(ordered); ordered.verify(receiver).endRecord(); }
@Test public void shouldNotNormalizeUTF8ByDefault() { picaDecoder.process( FIELD_003AT_0_ID + FIELD_MARKER + FIELD_021A_A_UEBER + FIELD_MARKER); final InOrder ordered = inOrder(receiver); ordered.verify(receiver).startRecord(RECORD_ID); verify003At0ID(ordered); verify021AAUeber(ordered, COMPOSED_UTF8); ordered.verify(receiver).endRecord(); }
@Test public void testShouldUseLastIdLiteralAsNewId() { recordIdChanger.startRecord(OLD_RECORD_ID1); recordIdChanger.literal(StandardEventNames.ID, NEW_RECORD_ID1); recordIdChanger.literal(StandardEventNames.ID, NEW_RECORD_ID2); recordIdChanger.endRecord(); final InOrder ordered = inOrder(receiver); ordered.verify(receiver).startRecord(NEW_RECORD_ID2); ordered.verify(receiver).endRecord(); }
@Test public void shouldLabelHebrewAsNonLatinRightToLeftScript() { remodeler.startRecord(RECORD_ID); emitMultscriptField(FIELD_021A, "01", SCRIPT_LATIN, VALUE_1); emitMultscriptField(FIELD_021A, "01", SCRIPT_HEBREW, VALUE_1_HEBREW); remodeler.endRecord(); final InOrder ordered = inOrder(receiver); ordered.verify(receiver).startRecord(RECORD_ID); verifyMultiscriptField(ordered, FIELD_021A, "01", SCRIPT_LATIN, VALUE_1, SCRIPT_HEBREW, VALUE_1_HEBREW); ordered.verify(receiver).endRecord(); }
@Test public void testShouldKeepIdLiteralIfConfigured() { recordIdChanger.setIdLiteral(StandardEventNames.ID); recordIdChanger.setKeepIdLiteral(true); recordIdChanger.startRecord(OLD_RECORD_ID1); recordIdChanger.literal(StandardEventNames.ID, NEW_RECORD_ID1); recordIdChanger.endRecord(); final InOrder ordered = inOrder(receiver); ordered.verify(receiver).startRecord(NEW_RECORD_ID1); ordered.verify(receiver).literal(StandardEventNames.ID, NEW_RECORD_ID1); ordered.verify(receiver).endRecord(); }