in src/main/java/org/apache/uima/json/jsoncas2/JsonCas2Serializer.java [119:160]
private synchronized ObjectMapper getMapper() {
if (cachedMapper == null) {
SimpleModule module = new SimpleModule("UIMA CAS JSON",
new Version(1, 0, 0, null, null, null));
ReferenceCache.Builder refCacheBuilder = ReferenceCache.builder()
.withIdRefGeneratorSupplier(idRefGeneratorSupplier)
.withTypeRefGeneratorSupplier(typeRefGeneratorSupplier);
module.addSerializer(new CasSerializer(refCacheBuilder::build));
module.addSerializer(new TypeSystemSerializer());
module.addSerializer(new TypeSerializer());
module.addSerializer(new FeatureSerializer());
module.addSerializer(new CommonArrayFSSerializer());
switch (sofaMode) {
case AS_PART_OF_VIEW:
module.addSerializer(new SofaSerializer());
break;
case AS_REGULAR_FEATURE_STRUCTURE:
// Nothing to do
break;
}
module.addSerializer(new FeatureStructureSerializer());
switch (fsMode) {
case AS_ARRAY:
module.addSerializer(new FeatureStructuresAsArraySerializer());
break;
case AS_OBJECT:
module.addSerializer(new FeatureStructuresAsObjectSerializer());
break;
}
module.addSerializer(new ViewsSerializer());
cachedMapper = new ObjectMapper();
cachedMapper.registerModule(module);
}
return cachedMapper;
}