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

Reply via email to