/** * Generate (and save) an UUID for the annotation (based on its externalId) * * @param annotation * @return */ public String generateForAnnotation(final BaleenAnnotation annotation) { final String externalId = annotation.getExternalId(); return generateForExternalId(externalId); }
/** * Generate (and save) as UUID for the externalId (could be document, entity, etc) * * @param externalId * @return */ public String generateForExternalId(final String externalId) { return findByExternalId(externalId) .orElseGet( () -> { final String id = generate(); addMapping(externalId, id); return id; }); }
/** * Reset id generation if new JCas. * * @param jCas the j cas * @return true, if reset */ public boolean resetIfNewJCas(final JCas jCas) { final DocumentAnnotation documentAnnotation = UimaSupport.getDocumentAnnotation(jCas); final String documentId = documentAnnotation.getHash(); final boolean isNewDocument = currentDocumentId == null || !currentDocumentId.equals(documentId); if (isNewDocument) { getMonitor().debug("Reset id cache for document {}", documentId); clearMappings(); currentDocumentId = documentId; } return isNewDocument; }
@Test public void testAfterClearDifferentUUID() throws UIMAException { final SharedIdGenerator generator = createSharedIdGenerator(); final JCas jCas = JCasSingleton.getJCasInstance(); jCas.setDocumentText("test"); final String p1id = "1234"; final String firstUUID = generator.generateForExternalId(p1id); assertEquals(firstUUID, generator.generateForExternalId(p1id)); jCas.reset(); jCas.setDocumentText("next"); generator.resetIfNewJCas(jCas); final String secondUUID = generator.generateForExternalId(p1id); assertNotEquals(firstUUID, secondUUID); assertEquals(secondUUID, generator.generateForExternalId(p1id)); }
private SharedIdGenerator createSharedIdGenerator() throws ResourceInitializationException { final SharedIdGenerator generator = new SharedIdGenerator(); generator.initialize(new AnalysisEngineDescription_impl(), Collections.emptyMap()); return generator; } }
@Override protected void doProcess(final JCas jCas) throws AnalysisEngineProcessException { idGenerator.resetIfNewJCas(jCas); final String documentId = idGenerator.generateForExternalId(baleenDocumentId);
public AnalysisMockData() { try { monitor = new UimaMonitor("test", this.getClass()); idGenerator = new SharedIdGenerator(); idGenerator.initialize(new AnalysisEngineDescription_impl(), Collections.emptyMap()); docId = toId(BALEEN_DOC_ID); createERC(); createJCas(); } catch (final Exception e) { throw new RuntimeException(e); } }
/** * Generate (and save) an UUID for the annotation (based on its externalId) * * @param annotation * @return */ public String generateForAnnotation(final BaleenAnnotation annotation) { final String externalId = annotation.getExternalId(); return generateForExternalId(externalId); }
/** * Generate (and save) as UUID for the externalId (could be document, entity, etc) * * @param externalId * @return */ public String generateForExternalId(final String externalId) { return findByExternalId(externalId) .orElseGet( () -> { final String id = generate(); addMapping(externalId, id); return id; }); }
/** * Reset id generation if new JCas. * * @param jCas the j cas * @return true, if reset */ public boolean resetIfNewJCas(final JCas jCas) { final DocumentAnnotation documentAnnotation = UimaSupport.getDocumentAnnotation(jCas); final String documentId = documentAnnotation.getHash(); final boolean isNewDocument = currentDocumentId == null || !currentDocumentId.equals(documentId); if (isNewDocument) { getMonitor().debug("Reset id cache for document {}", documentId); clearMappings(); currentDocumentId = documentId; } return isNewDocument; }
public String toId(final String externalId) { return idGenerator.generateForExternalId(externalId); }
@Test public void testSameIdSameUUID() throws ResourceInitializationException { final SharedIdGenerator generator = createSharedIdGenerator(); final String p1id = "1234"; final String p2id = "abcd"; final String p1UUID = generator.generateForExternalId(p1id); final String p2UUID = generator.generateForExternalId(p2id); assertNotEquals(p1UUID, p2UUID); assertEquals(p1UUID, generator.generateForExternalId(p1id)); assertEquals(p2UUID, generator.generateForExternalId(p2id)); }
final String entityId = idGenerator.generateForExternalId(baleenEntityId); final String baleenEntityId = "m" + m.getExternalId(); m.setBaleenEntityId(baleenEntityId); m.setEntityId(idGenerator.generateForExternalId(baleenEntityId)); });
final String externalId = idGenerator.generateForExternalId(baleenExternalId);
final String externalId = idGenerator.generateForExternalId(baleenExternalId); final String sourceId = idGenerator.generateForExternalId(source.getExternalId()); br.setSource(mentions.get(sourceId)); final String targetId = idGenerator.generateForExternalId(target.getExternalId()); br.setTarget(mentions.get(targetId));