Thank you. I also think I'll have to stick to the verbose way of
implementing this, but I'd prefer to use a factory rather than annotations.

I'll try to elaborate an interesting design for the Guice community and fill
a request for enhancement regarding this, hoping a good solution can be
found for the future.

Olivier

2009/9/22 Logan Johnson <[email protected]>

> How about a Module that iterates over the directory containing the
> properties file, and binds a Properties instance with Names.named() based on
> the filename?
> Then you could do @Inject @Named("MyWindow") Properties props.
>
> Less than ideal because the @Named("MyWindow") in a class called MyWindow
> is a little repetitive, but not terrible.
>
>
> 2009/9/21 Olivier Grégoire <[email protected]>
>
> Any idea?
>>
>> I know my previous response was during week-end. Maybe some people skip
>> their mail during w-e.
>>
>>
>> Olivier
>>
>> Le 19 septembre 2009 09:54, Olivier Grégoire <[email protected]> a
>> écrit :
>>
>>> In this case, we would only be moving the problem, since I have about one
>>> properties file per class. I would still have to know the class name at
>>> injection time to load the right properties file. Making one annotation per
>>> class that needs injection would of course be redundant (but a temporary
>>> possible solution) .
>>>
>>> Is there a way to use the SPI so that I know when a class needs to
>>> register its own type (or class name) to its dependencies?
>>>
>>>
>>> Olivier
>>>
>>>
>>> 2009/9/19 Dhanji R. Prasanna <[email protected]>
>>>
>>> Why not simply inject the properties directly? Using an annotation and a
>>>> Map<String, String>
>>>> Dhanji.
>>>>
>>>> 2009/9/19 Olivier Grégoire <[email protected]>
>>>>
>>>>
>>>>> Dears,
>>>>>
>>>>>
>>>>> I'm developing a small Swing application that needs at some points
>>>>> JMenuBars. A sample describes more than words:
>>>>>
>>>>> public class MyWindow extends JFrame {
>>>>>  public MyWindow (@Menu("myBar") JMenuBar myBar, @Menu("secondBar")
>>>>> JMenuBar secondBar) { ... }
>>>>> }
>>>>>
>>>>> class MenuBarFactory {
>>>>>  public JMenuBar createMenuBar(Class<?> forType, String menuName) {
>>>>>    // Fetch resources from properties file linked to forType
>>>>>    //   in this case MyWindow.class
>>>>>    // build menuBar for the menuName
>>>>>    // return menuBar
>>>>>  }
>>>>> }
>>>>>
>>>>>
>>>>> My problem is that I would like to pass automatically two parameters to
>>>>> the factory: the forType and the menuName.
>>>>>
>>>>> I've well thought about injecting the factory, but I'm not very
>>>>> convinced because "myBar" and "secondBar" are configuration strings and
>>>>> should rather be present in the annotation (instead of in the code),
>>>>> and
>>>>> also because the forType will always be the class of the injectee which
>>>>> is something already known from Guice.
>>>>>
>>>>> Is there a way to do this using the SPI, for instance?
>>>>>
>>>>>
>>>>> Regards,
>>>>>
>>>>> Olivier
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to