On Wednesday 07 of March 2012 13:43:53 Duncan Mac-Vicar P. wrote:
> I have been working on NewChannelHelper, CreateChannelCommand,
> ChannelSoftwareHandler and EditChannelAction.
> 
> Right now NewChannelHelper does some verifying and implements cloning,
> while new channel creation is implemented in CreateChannelCommand.
> 
> Basic validation is in two places,
> 
> CreateChannelCommand validates and throws (translated) exceptions.
> 
> NewChannelHelper implements the logic (but only answers true or false)
> and then the clone operation in the same class creates an untranslated
> InvalidChannelParameter exception.
> 
> This makes sense, as NewChannelHelper::clone is used in
> ChannelSoftwareHandler (xmlrpc) for the clonning, so an untranslated
> error is ok (despite the duplication).
> 
> When I refactored the validation in one place, I kept the ones from
> CreateChannelCommand, which are translated. I remember Tomas Lestach
> mentioning in irc that it is important that these xmlrpc exceptions are
> untranslated.

Not really. I said, that we usually do not translate API exceptions. That 
means I know a few of them being translated, but there's not a strict 
requirement to have them localized.

> Everything fine, however then I realized
> ChannelSoftwareHandler uses CreateChannelCommand for creating channels,
> and therefore it receives translated exceptions.
> 
> EditChannelAction catches the exceptions and based on the reason
> constructs ActionMessages no matter if the exception was already
> translated or not. If I could use the translated ones, I could remove
> the switch per-reason and just construct an ActionMessage directly from
> the Exception.
> 
> Any guidance here?

Ideal case would be to work just with the "cause/description identified" and 
localize it just before the handover to the user (or not localize it - let's 
say according to a predefined option for API exceptions). However I know the 
most of our code is far away of it.

Regards,
Tomas
-- 
Tomas Lestach
RHN Satellite Engineering, Red Hat

_______________________________________________
Spacewalk-devel mailing list
Spacewalk-devel@redhat.com
https://www.redhat.com/mailman/listinfo/spacewalk-devel

Reply via email to