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(); }
private void verify001_a_Test(final InOrder ordered) { ordered.verify(this.receiver).startEntity("001"); ordered.verify(this.receiver).literal("a", "test"); ordered.verify(this.receiver).endEntity(); }
@Override public final void endRecord() { getReceiver().endRecord(); recordCount++; recordCount %= batchSize; if (recordCount == 0) { batchCount++; getReceiver().resetStream(); } }
protected void emitEndEntity() { if (!literalsEmitted) { if (skipEmptyFields || entityName.isEmpty()) { return; } receiver.startEntity(entityName); entityName = null; } receiver.endEntity(); }
@Test public void shouldForwardAllReceivedEvents() { logger.startRecord("1"); logger.startEntity("entity"); logger.literal("literal", "value"); logger.endEntity(); logger.endRecord(); logger.resetStream(); logger.closeStream(); final InOrder ordered = inOrder(receiver); ordered.verify(receiver).startRecord("1"); ordered.verify(receiver).startEntity("entity"); ordered.verify(receiver).literal("literal", "value"); ordered.verify(receiver).endEntity(); ordered.verify(receiver).endRecord(); ordered.verify(receiver).resetStream(); ordered.verify(receiver).closeStream(); }
@Test public void shouldSkipEmptyFieldsByDefault() { picaDecoder.process( FIELD_003AT_0_ID + FIELD_MARKER + FIELD_028A + FIELD_MARKER); final InOrder ordered = inOrder(receiver); ordered.verify(receiver).startRecord(RECORD_ID); verify003At0ID(ordered); ordered.verify(receiver).endRecord(); verifyNoMoreInteractions(receiver); }
@Test public void shouldReplaceRecordEventsWithEntityEvents() { recordToEntity.startRecord("1"); recordToEntity.literal("literal", "value"); recordToEntity.startEntity("entity"); recordToEntity.endEntity(); recordToEntity.endRecord(); recordToEntity.closeStream(); InOrder ordered = inOrder(receiver); ordered.verify(receiver) .startEntity(RecordToEntity.DEFAULT_ENTITY_NAME); ordered.verify(receiver).literal("literal", "value"); ordered.verify(receiver).startEntity("entity"); ordered.verify(receiver, times(2)).endEntity(); ordered.verify(receiver).closeStream(); }
@Test public void shouldNotSkipEmptyFieldsIfConfigured() { picaDecoder.setSkipEmptyFields(false); picaDecoder.process( FIELD_003AT_0_ID + FIELD_MARKER + FIELD_028A + FIELD_MARKER); final InOrder ordered = inOrder(receiver); ordered.verify(receiver).startRecord(RECORD_ID); verify003At0ID(ordered); ordered.verify(receiver).startEntity(ENTITY_028A); ordered.verify(receiver).endEntity(); ordered.verify(receiver).endRecord(); }
@Override public void startRecord(final String identifier) { getReceiver().startRecord(identifier); if(!autoAddedSubject.isEmpty()){ getReceiver().startEntity(autoAddedSubject); getReceiver().literal(RDF_ABOUT, identifier); } }
@Test public void setDiscardEntityEvents_shouldDiscardStartEntityAndEndEntityIfTrue() { discarder.setDiscardEntityEvents(true); discarder.startRecord("1"); discarder.startEntity("entity"); discarder.endEntity(); discarder.literal("literal", "value"); discarder.endRecord(); discarder.resetStream(); discarder.closeStream(); final InOrder ordered = inOrder(receiver); ordered.verify(receiver).startRecord("1"); ordered.verify(receiver).literal("literal", "value"); ordered.verify(receiver).endRecord(); ordered.verify(receiver).resetStream(); ordered.verify(receiver).closeStream(); }
@Override public void endElement(final String uri, final String localName, final String qName) throws SAXException { if (SUBFIELD.equals(localName)) { getReceiver().literal(currentTag, Normalizer.normalize(builder.toString().trim(), Normalizer.Form.NFC)); } else if (DATAFIELD.equals(localName)) { getReceiver().endEntity(); } else if (RECORD.equals(localName) && NAMESPACE.equals(uri)) { getReceiver().endRecord(); } }
@Test public void setIdLiteralName_shouldEnableOutputOfRecordIdAsLiteral() { recordToEntity.setIdLiteralName("record-id"); recordToEntity.startRecord("1"); receiver.endRecord(); receiver.closeStream(); InOrder ordered = inOrder(receiver); ordered.verify(receiver) .startEntity(RecordToEntity.DEFAULT_ENTITY_NAME); ordered.verify(receiver).literal("record-id", "1"); }
@Override public void startRecord(final String identifier) { getReceiver().startEntity(entityName); if (idLiteralName != null) { getReceiver().literal(idLiteralName, identifier); } }
@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); } }
@Override public void literal(final String name, final String value) { if (!discardedEvents.contains(EventType.LITERAL)) { receiver.literal(name, value); } }
@Test public void shouldClearStateOnResetStream() { remodeler.startRecord(RECORD_ID); emitMultscriptField(FIELD_021A, "01", SCRIPT_LATIN, VALUE_1); remodeler.resetStream(); remodeler.startRecord(RECORD_ID); emitMultscriptField(FIELD_021A, "01", SCRIPT_GREEK, VALUE_1_GREEK); remodeler.endRecord(); final InOrder ordered = inOrder(receiver); ordered.verify(receiver).startRecord(RECORD_ID); ordered.verify(receiver).resetStream(); ordered.verify(receiver).startRecord(RECORD_ID); verifySingleMultiscriptField(ordered, FIELD_021A, "01", SCRIPT_GREEK, VALUE_1_GREEK); ordered.verify(receiver).endRecord(); }
@Override public void endRecord() { if (!discardedEvents.contains(EventType.RECORD)) { receiver.endRecord(); } }
@Test public void setEntityName_shouldChangeNameOfGeneratedEntity() { recordToEntity.setEntityName("container"); recordToEntity.startRecord("1"); recordToEntity.endRecord(); recordToEntity.closeStream(); InOrder ordered = inOrder(receiver); ordered.verify(receiver).startEntity("container"); ordered.verify(receiver).endEntity(); ordered.verify(receiver).closeStream(); }
@Override public void startDataField(final char[] tag, final char[] implDefinedPart, final char[] indicators) { getReceiver().startEntity(buildName(tag, indicators)); }