Hi Dhanji
of course you're right, I didn't test the code since I "developed" it
directly in my mail client ;)
Best,
Simone

2008/9/2 Dhanji R. Prasanna <[EMAIL PROTECTED]>:
>
> note that this impl of equals will always return false because of
> obj.getClass().
>
> Dhanji.
>
> On 9/1/08, Simone Tripodi <[EMAIL PROTECTED]> wrote:
>>
>> Hi Elek,
>> as Robbie suggested you - and reading oldest posts here in the group
>> you can understand that Robbie always knows the best solution - if you
>> choice the second way (and you still need help) I've prepared for you
>> the implementation you need:
>>
>>
>> public class PersistenceContextImpl implements PersistenceContext {
>>
>>     private String unitName;
>>
>>     public PersistenceContextImpl(String unitName) {
>>         this.unitName = unitName;
>>     }
>>
>>     public Class<? extends Annotation> annotationType() {
>>         return PersistenceContext.class;
>>     }
>>
>>     @Override
>>     public boolean equals(Object obj) {
>>         if (this == obj) {
>>             return true;
>>         }
>>
>>         if ((obj == null) || (obj.getClass() != PersistenceContext.class)) {
>>             return false;
>>         }
>>
>>         PersistenceContext other = (PersistenceContext) obj;
>>         return unitName.equals(other.unitName());
>>     }
>>
>>     @Override
>>     public int hashCode() {
>>         return (127 * "unitName".hashCode() ^ unitName.hashCode());
>>     }
>>
>>     public String unitName() {
>>         return unitName;
>>     }
>>
>> }
>>
>>
>> Now you're able to bind EntityManager in this way:
>>
>> binder.bind(EntityManager.class).annotatedWith(new
>> PersistenceContextImpl("Test1PU")).toProvider(new
>> EntityManagerProvider(directory1));
>>
>> binder.bind(EntityManager.class).annotatedWith(new
>> PersistenceContextImpl("Test2PU")).toProvider(new
>> EntityManagerProvider(directory2));
>>
>> I hope this helps!
>> Best regards,
>> Simone
>>
>> 2008/8/31 Robbie Vanbrabant <[EMAIL PROTECTED]>:
>>> The easy answer: consider using Warp Persist (http://www.wideplay.com) for
>>> guicy persistence. Although support for multiple persistence units is not
>>> implemented in 1.0, we have have experimental support for it in the trunk.
>>> If you depend on that functionality let me know and we will help you get
>>> started.
>>>
>>> The other answer would be yes, you can do that. Have a look at how Guice
>>> implements Names.named(...). You basically have to bind to annotation
>>> instances instead of types, and you do that by subclassing the annotation
>>> and binding to an instance of that subclass.
>>>
>>> Hope this helps,
>>> Robbie
>>>
>>> On Sun, Aug 31, 2008 at 6:59 PM, elek <[EMAIL PROTECTED]> wrote:
>>>>
>>>> Hi,
>>>>
>>>> Is there any way to inject dynamic values to a class according to the
>>>> annotation parameters with Guice?
>>>> Eg.: I have the following fields in a class:
>>>>
>>>> @PersistenceContext(unitName="Test1PU")
>>>> EntityManager em1;
>>>>
>>>> @PersistenceContext(unitName="Test2PU")
>>>> EntityManager em2;
>>>>
>>>> An I would like to inject different EntityManager instances.
>>>> Unfortunately I can't access the annotation or the original Field over
>>>> the the Provider interface:
>>>>
>>>>
>>>> binder.bind(EntityManager.class).annotatedWith(PersistenceContext.class).toProvider(new
>>>> EntityManagerProvider(directory, ???unitName value???));
>>>>
>>>> Is there any solution for it?
>>>>
>>>> Thanks:
>>>> m.
>>>>
>>>
>>>
>>> >
>>>
>>
>>
>>
>> --
>> My LinkedIn profile: http://www.linkedin.com/in/simonetripodi
>> My GoogleCode profile: http://code.google.com/u/simone.tripodi/
>> My Sourceforge: https://sourceforge.net/users/stripodi
>> My Picasa: http://picasaweb.google.com/simone.tripodi/
>> My Tube: http://www.youtube.com/user/stripodi
>> My Del.icio.us: http://del.icio.us/simone.tripodi
>>
>> >
>>
>
> >
>



-- 
My LinkedIn profile: http://www.linkedin.com/in/simonetripodi
My GoogleCode profile: http://code.google.com/u/simone.tripodi/
My Sourceforge: https://sourceforge.net/users/stripodi
My Picasa: http://picasaweb.google.com/simone.tripodi/
My Tube: http://www.youtube.com/user/stripodi
My Del.icio.us: http://del.icio.us/simone.tripodi

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