generated UNO code for service constructors
Stephan Bergmann
sbergman at redhat.com
Fri Feb 15 01:47:13 PST 2013
On 02/15/2013 10:35 AM, Noel Grandin wrote:
> Then how about this?
> Split the logic so we can differentiate the cases.
It would grow more code, but if you absolutely feel like it... :)
(In which case the "of type XFilePicker3" should arguably be removed
from the original two throw expressions.)
> Also, we could reduce the compress the EXE size a little by moving all
> of this boilerplate into a central utility method somewhere.
Yeah, might be possible to abstract out some common code into one or
more functions.
> static Reference< XFilePicker3 > createDefault(Reference<
> XComponentContext > const & the_context) {
> assert(the_context.is());
> Reference< XInterface > the_instance1;
> try {
> the_instance1 =
> the_context->getServiceManager()->createInstanceWithArgumentsAndContext(
> "com.sun.star.ui.dialogs.FilePicker" ,
> Sequence<Any>(),
> the_context),
> } catch (RuntimeException &) {
> throw;
> } catch (Exception & the_exception) {
> throw DeploymentException( "component context fails to supply
> service FilePicker of type XFilePicker3: "
> + the_exception.Message, the_context);
> }
> if (!the_instance1.is()) {
> throw DeploymentException( "component context fails to supply
> service FilePicker of type XFilePicker3" ), the_context);
> }
> Reference< XFilePicker3 > the_instance2( the_instance1, UNO_QUERY );
> if (!the_instance2.is()) {
> throw DeploymentException( "component context supplied a
> service FilePicker, but the service does not implement interface
> XFilePicker3" ), the_context); }
> return the_instance;
> }
Stephan
More information about the LibreOffice
mailing list