[ https://issues.apache.org/jira/browse/UIMA-6382?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Richard Eckart de Castilho updated UIMA-6382: --------------------------------------------- Description: The {{CasCreationUtils}} class is the way of creating new CAS instances, but its signatures are becoming a bit unwieldy. E.g. we have a {{CasCreationUtils.createCas()}} to create a CAS without any type system definition and we have a {{CasCreationUtils.createCas(tsd, null, null, null)}} to create one with a type system definition and nothing really in between. In would propose investigating a builder-like approach where we could write something like: {code} CAS cas = CAS.builder().withTypeSystem(tsd).build(); CAS cas = CAS.builder() .withDefinition(CasDefinition) .addTypeSystem(tsd) // can be called multiple times .addTypePriorities(...) // can be called multiple times .addFsIndexes(...) // can be called multiple times .addAnalysisEngineDescription(...) // can be called multiple times .addMetaDataObject(...) // can be called multiple times .withResourceManager(...) .withProperties(...) .withProperty(key, value) // can be called multiple times but should only be called once per key .build(); {code} was: The {{CasCreationUtils}} class is the way of creating new CAS instances, but its signatures are becoming a bit unwieldy. E.g. we have a {{CasCreationUtils.createCas()}} to create a CAS without any type system definition and we have a {{CasCreationUtils.createCas(tsd, null, null, null)}} to create one with a type system definition and nothing really in between. In would propose investigating a builder-like approach where we could write something like: {code} CAS cas = CAS.builder().withTypeSystem(tsd).build(); CAS cas = CAS.builder() .withDefinition(CasDefinition) .withTypeSystem(tsd) .withTypePriorities(...) .withFsIndexes(...) .addAnalysisEngineDescription(...) // can be called multiple times .addMetaDataObject(...) // can be called multiple times .withResourceManager(...) .withProperties(...) .withProperty(...) .build(); {code} > Better alternative for CasCreationUtils > --------------------------------------- > > Key: UIMA-6382 > URL: https://issues.apache.org/jira/browse/UIMA-6382 > Project: UIMA > Issue Type: New Feature > Components: Core Java Framework > Reporter: Richard Eckart de Castilho > Priority: Minor > > The {{CasCreationUtils}} class is the way of creating new CAS instances, but > its signatures are becoming a bit unwieldy. E.g. we have a > {{CasCreationUtils.createCas()}} to create a CAS without any type system > definition and we have a {{CasCreationUtils.createCas(tsd, null, null, > null)}} to create one with a type system definition and nothing really in > between. > In would propose investigating a builder-like approach where we could write > something like: > {code} > CAS cas = CAS.builder().withTypeSystem(tsd).build(); > CAS cas = CAS.builder() > .withDefinition(CasDefinition) > .addTypeSystem(tsd) // can be called multiple times > .addTypePriorities(...) // can be called multiple times > .addFsIndexes(...) // can be called multiple times > .addAnalysisEngineDescription(...) // can be called multiple times > .addMetaDataObject(...) // can be called multiple times > .withResourceManager(...) > .withProperties(...) > .withProperty(key, value) // can be called multiple times but should only > be called once per key > .build(); > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)