private void addRecord(String source) { TemplateRecord record1 = new TemplateRecord(jCas); record1.setBegin(52); record1.setEnd(212); record1.setName("record"); record1.setSource(source); record1.addToIndexes(); }
/** * @generated * @param jcas JCas to which this Feature Structure belongs * @param begin offset to the begin spot in the SofA * @param end offset to the end spot in the SofA */ public TemplateRecord(JCas jcas, int begin, int end) { super(jcas); setBegin(begin); setEnd(end); readObject(); }
assertEquals("quote1", r1.getName()); assertEquals(0, r1.getBegin()); assertEquals(quotation1.getEnd(), r1.getEnd()); assertEquals("quote1", r2.getName()); assertEquals(quotation1.getEnd(), r2.getBegin()); assertEquals(quotation2.getEnd(), r2.getEnd()); assertEquals("quote2", r3.getName()); assertEquals(link1.getEnd(), r3.getBegin()); assertEquals(quotation3.getEnd(), r3.getEnd()); assertEquals("quote2", r4.getName()); assertEquals(quotation3.getEnd(), r4.getBegin()); assertEquals(quotation4.getEnd(), r4.getEnd()); assertEquals("single", r5.getName()); assertEquals(link3.getEnd(), r5.getBegin()); assertEquals(table.getBegin(), r5.getEnd()); assertEquals(1, fields.size()); field = fields.get(0); assertEquals("row", r6.getName()); assertEquals(quotation5.getEnd(), r6.getBegin()); assertEquals(tableRow1.getEnd(), r6.getEnd()); assertEquals("row", r7.getName()); assertEquals(tableRow1.getEnd(), r7.getBegin()); assertEquals(tableRow2.getEnd(), r7.getEnd());
protected TemplateRecord assertRecordCoversParas2to4() { TemplateRecord record = JCasUtil.selectSingle(jCas, TemplateRecord.class); assertEquals(52, record.getBegin()); assertEquals(212, record.getEnd()); assertEquals(String.join("\n", "", PARA2, PARA3, PARA4, ""), record.getCoveredText()); return record; }
@Override protected void doProcess(final JCas jCas) throws AnalysisEngineProcessException { Multimap<String, ExtractedRecord> records = HashMultimap.create(); Collection<TemplateRecord> recordAnnotations = JCasUtil.select(jCas, TemplateRecord.class); HashSet<TemplateField> allFields = new HashSet<>(JCasUtil.select(jCas, TemplateField.class)); for (TemplateRecord recordAnnotation : recordAnnotations) { Collection<TemplateField> fieldAnnotations = JCasUtil.selectCovered(TemplateField.class, recordAnnotation); List<TemplateField> recordFieldAnnotations = fieldAnnotations .stream() .filter(f -> recordAnnotation.getSource().equals(f.getSource())) .collect(Collectors.toList()); allFields.removeAll(recordFieldAnnotations); Collection<ExtractedField> fieldValues = makeFieldValues(recordFieldAnnotations); records.put( recordAnnotation.getSource(), new ExtractedRecord(recordAnnotation.getName(), fieldValues)); } Multimap<String, TemplateField> remainingFields = HashMultimap.create(); for (TemplateField templateField : allFields) { remainingFields.put(templateField.getSource(), templateField); } for (String source : remainingFields.keySet()) { records.put(source, new ExtractedRecord(makeFieldValues(remainingFields.get(source)))); } String documentSourceName = SourceUtils.getDocumentSourceBaseName(jCas); writeRecords(jCas, documentSourceName, records.asMap()); }
private Collection<TemplateRecord> removeOtherRecord(Collection<TemplateRecord> selected) { Collection<TemplateRecord> remaining = new ArrayList<>(); for (TemplateRecord r : selected) { if (!"otherRecord".equals(r.getName())) { remaining.add(r); } } assertTrue(remaining.size() < selected.size()); return remaining; }
/** * @generated * @param jcas JCas to which this Feature Structure belongs * @param begin offset to the begin spot in the SofA * @param end offset to the end spot in the SofA */ public TemplateRecord(JCas jcas, int begin, int end) { super(jcas); setBegin(begin); setEnd(end); readObject(); }
assertEquals("quote1", r1.getName()); assertEquals(0, r1.getBegin()); assertEquals(link1.getBegin(), r1.getEnd()); assertEquals("quote2", r2.getName()); assertEquals(link1.getEnd(), r2.getBegin()); assertEquals(link2.getBegin(), r2.getEnd()); assertEquals("missing", r3.getName()); assertEquals(link2.getEnd(), r3.getBegin()); assertEquals(link3.getBegin(), r3.getEnd()); assertEquals("single", r4.getName()); assertEquals(link3.getEnd(), r4.getBegin()); assertEquals(table.getBegin(), r4.getEnd()); assertEquals(1, fields.size()); field = fields.get(0); assertEquals("row", r5.getName()); assertEquals(quotation5.getEnd(), r5.getBegin()); assertEquals(tableRow1.getEnd(), r5.getEnd()); assertEquals("row", r6.getName()); assertEquals(tableRow1.getEnd(), r6.getBegin()); assertEquals(tableRow2.getEnd(), r6.getEnd());
@Test public void testNoFieldsInRecord() throws AnalysisEngineProcessException, ResourceInitializationException, IOException { Path definitionFile = createNoFieldsRecordDefinition(); try { processJCas(TemplateAnnotator.PARAM_RECORD_DEFINITIONS_DIRECTORY, tempDirectory.toString()); TemplateRecord record = JCasUtil.selectSingle(jCas, TemplateRecord.class); assertEquals(158, record.getBegin()); assertEquals(212, record.getEnd()); assertEquals(String.join("\n", "", PARA4, ""), record.getCoveredText()); Collection<TemplateField> fields = JCasUtil.select(jCas, TemplateField.class); assertEquals(0, fields.size()); assertFalse(JCasUtil.contains(jCas, record, TemplateField.class)); } finally { Files.delete(definitionFile); } }
@Override @Before public void setup() throws IOException { super.setup(); TemplateRecord otherRecord = new TemplateRecord(jCas); otherRecord.setBegin(53); otherRecord.setEnd(105); otherRecord.setName("otherRecord"); otherRecord.setSource("other"); otherRecord.addToIndexes(); TemplateField otherField = new TemplateField(jCas); otherField.setBegin(53); otherField.setEnd(68); otherField.setName("otherField"); otherField.setSource("other"); otherField.setValue("default"); otherField.addToIndexes(); }
@Test public void testCreateRecordWhenNoFollowingPath() throws AnalysisEngineProcessException, ResourceInitializationException, IOException { Path definitionFile = createNoFollowingRecordDefinition(); try { processJCas( TemplateAnnotator.PARAM_RECORD_DEFINITIONS_DIRECTORY, tempDirectory.toString(), TemplateAnnotator.PARAM_TYPE_NAMES, new String[] {"Paragraph"}); TemplateRecord record = JCasUtil.selectSingle(jCas, TemplateRecord.class); assertEquals(212, record.getBegin()); assertEquals(265, record.getEnd()); assertEquals("\n" + PARA5, record.getCoveredText()); TemplateField field1 = JCasUtil.selectSingle(jCas, TemplateField.class); assertEquals(213, field1.getBegin()); assertEquals(265, field1.getEnd()); assertEquals(PARA5, field1.getCoveredText()); assertEquals(PARA5, field1.getValue()); assertEquals(2, JCasUtil.select(jCas, Metadata.class).size()); } finally { Files.delete(definitionFile); } }
@Before public void setup() throws IOException { jCas.setDocumentText(TEXT); TemplateRecord record = new TemplateRecord(jCas); record.setName("report"); record.setSource("brownSauce"); record.setBegin(0); record.setEnd(52); record.addToIndexes(); TemplateField field1 = new TemplateField(jCas); field1.setBegin(16); field1.setEnd(19); field1.setName("athlete"); field1.addToIndexes(); TemplateField field2 = new TemplateField(jCas); field2.setBegin(41); field2.setEnd(44); field2.setName("spectactor"); field2.addToIndexes(); }
@Before public void setup() throws IOException { jCas.setDocumentText(TEXT); TemplateRecord record = new TemplateRecord(jCas); record.setName("report"); record.setSource("brown"); record.setBegin(0); record.setEnd(52); record.addToIndexes(); TemplateField field1 = new TemplateField(jCas); field1.setBegin(16); field1.setEnd(19); field1.setName("athlete"); field1.addToIndexes(); TemplateField field2 = new TemplateField(jCas); field2.setBegin(41); field2.setEnd(44); field2.setName("spectator"); field2.addToIndexes(); }
creator2.addToIndexes(); TemplateRecord record1 = new TemplateRecord(jCas); record1.setBegin(0); record1.setEnd(52); record1.setName("record1"); record1.setSource(sourceName); record1.addToIndexes(); record1Field2.addToIndexes(); TemplateRecord record2 = new TemplateRecord(jCas); record2.setBegin(53); record2.setEnd(105); record2.setName("record2"); record2.setSource(sourceName); record2.addToIndexes();