That would effectively mean that the information if a parameter is mandatory or not is in the descriptor is made irrelevant and the information is no longer programmatically accessible as it becomes a parameter to the getStringConfigurationParameter() method, is that correct?
-- Richard On 18.09.2013, at 14:16, Jörn Kottmann <[email protected]> wrote: > Hi all, > > the UimaContext defines two methods to access the value of a configuration > parameter based on name, > and the second based on name and group, the methods returns an object which > type depends on > the parameter configuration in the descriptor. > > In an Analysis Engine implementation which access the configuration > parameters two things can go wrong: > - The expected type does not match the actual returned object type > - A mandatory parameter is missing > > These two errors can only occur if the descriptor got out of sync with the > implementation, which can easily happen > to a user by updating to a newer version of an AE implemenation. The newer AE > version might have more or different > mandatory parameters, and types of existing parameters might have changed as > well. > > An AE implementation which should not throw NullPointerExceptions are > ClassCastExceptions need to test for every > parameter if its not null in case it is mandatory and check for the expected > type before casting. > > I think we should try to make accessing configuration parameters easier in > UIMA. > > A simple solution could be to add new methods to UimaContext to access > configuration parameter values by type, > e.g. getStringConfigurationParameter(String aParamName, boolean mandatory). > > Any thoughts? > > Jörn
