/** * Convert a StringArray to a string. * * @param array the array * @param separator the separator * @return the string */ protected String asString(StringArray array, String separator) { return Arrays.stream(UimaTypesUtils.toArray(array)).collect(Collectors.joining(separator)); }
private void addDocumentAnnotationToProperties( final Map<String, Object> properties, final DocumentAnnotation da) { properties.put(AnalysisConstants.DOCUMENT_TYPE, da.getDocType()); properties.put(AnalysisConstants.CAVEATS, UimaTypesUtils.toList(da.getDocumentCaveats())); properties.put(AnalysisConstants.CLASSIFICATION, da.getDocumentClassification()); properties.put( AnalysisConstants.RELEASABILITY, UimaTypesUtils.toList(da.getDocumentReleasability())); properties.put(AnalysisConstants.LANGUAGE, da.getLanguage()); properties.put(AnalysisConstants.HASH, da.getHash()); properties.put(AnalysisConstants.SOURCE, da.getSourceUri()); properties.put(AnalysisConstants.TIMESTAMP, new Date(da.getTimestamp())); }
private void rehydrateArray(final JCas jCas, final Map<Long, BaleenAnnotation> annotations) { Collection<Integer> list; if (references instanceof Collection) { list = (Collection<Integer>) references; } else { // Should never happen, but convert to list list = Collections.singletonList((Integer) references); } if (list == null || list.isEmpty()) { return; } // Note here we aren't checking that we have the right feature structure type! final List<BaleenAnnotation> derefernces = list.stream() .map(i -> annotations.get((long) i)) .filter(Objects::nonNull) .collect(Collectors.toList()); if (derefernces.isEmpty()) { return; } final FSArray fsArray = UimaTypesUtils.toFSArray(jCas, derefernces); annotation.setFeatureValue(feature, fsArray); }
/** * Create a Style * * @param jCas the jCas * @param styleName the style name * @return the Style */ private Style createStyle(final JCas jCas, final String styleName) { final Style style = new Style(jCas); style.setDecoration(UimaTypesUtils.toArray(jCas, Collections.singleton(styleName))); return style; }
@Test public void testToFSArrayCollection() { FSArray nullArray = UimaTypesUtils.toFSArray(jCas, (Collection<FeatureStructure>) null); assertNotNull(nullArray); assertEquals(0, nullArray.size()); FSArray emptyArray = UimaTypesUtils.toFSArray(jCas, new ArrayList<>()); assertNotNull(emptyArray); assertEquals(0, emptyArray.size()); Entity e = new Entity(jCas); FSArray fullArray = UimaTypesUtils.toFSArray(jCas, Arrays.asList(e)); assertNotNull(fullArray); assertEquals(1, fullArray.size()); assertSame(e, fullArray.get(0)); }
/** * Create a Style * * @param jCas the jCas * @param styleName the style name * @return the Style */ private Style createStyle(final JCas jCas, final String styleName) { final Style style = new Style(jCas); style.setDecoration(UimaTypesUtils.toArray(jCas, Collections.singleton(styleName))); return style; }
@Test public void testToFSArrayFeatureStructure() { FSArray nullArray = UimaTypesUtils.toFSArray(jCas, (FeatureStructure) null); assertNotNull(nullArray); assertEquals(1, nullArray.size()); FSArray emptyArray = UimaTypesUtils.toFSArray(jCas); assertNotNull(emptyArray); assertEquals(0, emptyArray.size()); Entity e = new Entity(jCas); FSArray fullArray = UimaTypesUtils.toFSArray(jCas, e); assertNotNull(fullArray); assertEquals(1, fullArray.size()); assertSame(e, fullArray.get(0)); }
private void processDocumentAnnotation( final JCas jCas, final DocumentAnnotation da, final Map<String, Object> map) { da.setDocType((String) map.getOrDefault(JsonJCas.DA_DOCUMENT_TYPE, "")); da.setDocumentClassification((String) map.getOrDefault(JsonJCas.DA_CLASSIFICATION, "")); da.setLanguage((String) map.getOrDefault(JsonJCas.DA_LANGUAGE, "")); da.setSourceUri((String) map.getOrDefault(JsonJCas.DA_SOURCE_URI, "")); da.setTimestamp(((Number) map.getOrDefault(JsonJCas.DA_TIMESTAMP, 0)).longValue()); da.setDocumentCaveats( UimaTypesUtils.toArray( jCas, (Collection<String>) map.getOrDefault(JsonJCas.DA_CAVEATS, null))); da.setDocumentReleasability( UimaTypesUtils.toArray( jCas, (Collection<String>) map.getOrDefault(JsonJCas.DA_RELEASABILITY, null))); }
@Test public void testToList() { assertTrue(UimaTypesUtils.toList((StringArray) null).isEmpty()); assertTrue(UimaTypesUtils.toList((FSArray) null).isEmpty()); // Empty list FSArray array = new FSArray(jCas, 2); assertEquals(2, UimaTypesUtils.toList(array).size()); // Populate array.set(0, new Entity(jCas)); array.set(1, new Entity(jCas)); List<Entity> list = UimaTypesUtils.toList(array); assertEquals(2, list.size()); assertSame(array.get(0), list.get(0)); assertSame(array.get(0), list.get(0)); } }
Arrays.stream(UimaTypesUtils.toArray(e.getEventType())).collect(Collectors.joining(","))); } else { list.add("");
private void saveDocument(String documentId, JCas jCas) { Document doc = new Document(); DocumentAnnotation da = getDocumentAnnotation(jCas); doc.append(fields.getExternalId(), documentId) .append( FIELD_DOCUMENT, new Document() .append(FIELD_DOCUMENT_TYPE, da.getDocType()) .append(FIELD_DOCUMENT_SOURCE, da.getSourceUri()) .append(FIELD_DOCUMENT_LANGUAGE, da.getLanguage()) .append(FIELD_DOCUMENT_TIMESTAMP, new Date(da.getTimestamp())) .append(FIELD_DOCUMENT_CLASSIFICATION, da.getDocumentClassification()) .append(FIELD_DOCUMENT_CAVEATS, toList(da.getDocumentCaveats())) .append(FIELD_DOCUMENT_RELEASABILITY, toList(da.getDocumentReleasability()))); addPublishedIds(jCas, doc); addMetadata(jCas, doc); if (outputContent) { doc.append(FIELD_CONTENT, jCas.getDocumentText()); } documentsCollection.insertOne(doc); }
@SuppressWarnings("unchecked") private void assertMetadata(JCas jCas, Map<String, Object> variables) { DocumentAnnotation da = UimaSupport.getDocumentAnnotation(jCas); String documentId = ConsumerUtils.getExternalId(da, false); assertEquals(da.getDocType(), variables.get(FIELD_DOCUMENT_TYPE)); assertEquals(da.getSourceUri(), variables.get(FIELD_DOCUMENT_SOURCE)); assertEquals(da.getLanguage(), variables.get(FIELD_DOCUMENT_LANGUAGE)); assertEquals(new Date(da.getTimestamp()), variables.get(FIELD_DOCUMENT_TIMESTAMP)); assertEquals(da.getDocumentClassification(), variables.get(FIELD_DOCUMENT_CLASSIFICATION)); assertEquals( UimaTypesUtils.toList(da.getDocumentCaveats()), variables.get(FIELD_DOCUMENT_CAVEATS)); assertFalse(variables.containsKey(FIELD_DOCUMENT_RELEASABILITY)); Map<String, String> publishedId = ((List<Map<String, String>>) variables.get(FIELD_PUBLISHEDIDS)).get(0); assertEquals("12", publishedId.get(FIELD_PUBLISHEDIDS_ID)); assertEquals("test", publishedId.get(FIELD_PUBLISHEDIDS_TYPE)); Map<String, Collection<Object>> meta = (Map<String, Collection<Object>>) variables.get(FIELD_METADATA); assertTrue(meta.get("test").contains("1")); assertTrue(meta.get("test").contains("2")); assertEquals(2, meta.get("test").size()); assertNull(variables.get(FIELD_CONTENT)); assertEquals(documentId, variables.get("externalId")); }
protected long createNoEntitiesDocument() { jCas.reset(); jCas.setDocumentText("Hello World"); jCas.setDocumentLanguage("en"); long timestamp = System.currentTimeMillis(); DocumentAnnotation da = getDocumentAnnotation(jCas); da.setTimestamp(timestamp); da.setSourceUri("test/no_entities"); da.setDocType("test"); da.setDocumentClassification("OFFICIAL"); da.setDocumentCaveats( UimaTypesUtils.toArray(jCas, Arrays.asList(new String[] {"TEST_A", "TEST_B"}))); da.setDocumentReleasability( UimaTypesUtils.toArray(jCas, Arrays.asList(new String[] {"ENG", "SCO", "WAL"}))); return timestamp; }
@Test public void testJavaToUima() { StringArray sa = UimaTypesUtils.toArray(jCas, Arrays.asList("Foo", "Bar", "Baz")); assertEquals(3, sa.size()); assertEquals("Foo", sa.get(0)); assertEquals("Bar", sa.get(1)); assertEquals("Baz", sa.get(2)); }
da.setDocumentCaveats(UimaTypesUtils.toArray(jCas, Arrays.asList("Test", "Caveats")));