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

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