Richard Eckart de Castilho created UIMA-2801:
------------------------------------------------

             Summary: Allow multi-valued external resources
                 Key: UIMA-2801
                 URL: https://issues.apache.org/jira/browse/UIMA-2801
             Project: UIMA
          Issue Type: Improvement
          Components: uimaFIT
            Reporter: Richard Eckart de Castilho
            Assignee: Richard Eckart de Castilho
             Fix For: 2.1.0uimaFIT


Currently, there can only be one external resource per key, e.g.:

{code}
  final static String MODEL_KEY = "Model";
  @ExternalResource(key = MODEL_KEY)
  private SharedModel model;

---

AnalysisEngineDescription aed1 = createPrimitiveDescription(Annotator.class,
  Annotator.MODEL_KEY, extDesc);
{code}

There are cases where we want to pass a multiple external resources at a time, 
e.g. multiple models when can be used jointly by a component. It is 
inconvenient to have the component declare one key per model, because we do not 
know their number in advance. Adding support for adding multi-valued external 
resources in uimaj-core looks like a major change, as the XML descriptors would 
need to be extended. At the level of uimaFIT, it should be rather easy to 
implement something like this:

{code}
  final static String MODEL_KEY = "Model";
  @ExternalResource(key = MODEL_KEY)
  private List<SharedModel> model;

---

AnalysisEngineDescription aed1 = createPrimitiveDescription(Annotator.class,
  Annotator.MODEL_KEY, asList(extDesc1, extDesc2, extDesc3));
{code}

uimaFIT may implicitly bind the three values to "Model#1", "Model#2", and 
"Model#3". When configuring a component, it can check that the external 
resource parameter field is multi-valued and look for the keys with the "#X" 
postfixes.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to