UPDATE: In the few days of waiting for my post to pass moderation, the developer of the 3rd party library contacted me. Turns out there IS actually a way to pass an already instantiated object for the GUI to use and call. He updated his wiki to document how. This basically solves my problem though I am still curious about the question itself.
Thanks, ~David On Oct 31, 7:33 pm, David <[email protected]> wrote: > Alright I have read through the Guice user-guides and I am using Guice > on several projects now. I am still pretty new to Guice though. > Currently I have run into a bit of a snag and I wanted some advice on > how to proceed. I don't know how to solve the following issue except > by using static factories (which I know is frowned upon). > > Lets say I have a service, 'MyService', which is bound to > 'MyServiceImpl', is injected into multiple places in my project, and > is a Singleton (it has state that all parts of the program must be > aware of). So far so good. This works as expected. > > Now one of the places I need access to this service is a class call > 'MyGuiScreenController' which implements a third party interface, > 'ScreenController'. Now here is where things get interesting. The > rest of my code never touches MyGuiScreenController. It is > instantiated (using a default, no argument constructor) by a third > party (GUI) library via reflection. I have no control over this > process. It has an inherited method 'bind' which is called when the > GUI is setup, and then any number of methods I define based on GUI > events. > > Now as I said, I could probably get away with a static factory and > call said factory inside the bind method to get access to 'MyService', > but is this the only way? It might get especially ugly as I will > probably have many similar classes to 'MyGuiScreenController', all > needing certain other service classes. Will I need to make a static > factory for each one of these? That seems like a bad solution, but > the only one I can figure out at the moment. > > Thanks for any help and please ask any questions if I did not explain > myself fully. > > ~David -- You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-guice?hl=en.
