No, that's what we were just discussing. AnnotationLiteral needs to do
the same thing as a JVM-generated impl of Annotation. It's up to the
CDI implementation to implement its own comparisons which ignore
@NonBinding members.
On Sun, Nov 29, 2009 at 11:01 PM, Shane Bryzak <sbryzak(a)redhat.com> wrote:
A little off topic, and maybe I'm missing something.. but
shouldn't
javax.enterprise.util.AnnotationLiteral ignore any @NonBinding members in
its equals() test? Or is that handled elsewhere?
@Override
public boolean equals(Object other)
{
if (other instanceof Annotation)
{
Annotation that = (Annotation) other;
if (this.annotationType().equals(that.annotationType()))
{
for (Method member : members)
{
Object thisValue = invoke(member, this);
Object thatValue = invoke(member, that);
if (thisValue.getClass().isArray() &&
thatValue.getClass().isArray())
{
if (!Arrays.equals(Object[].class.cast(thisValue),
Object[].class.cast(thatValue)))
{
return false;
}
}
else if (!thisValue.equals(thatValue))
{
return false;
}
}
return true;
}
}
return false;
}
On 30/11/09 13:39, Stuart Douglas wrote:
>
> Sorry, I forgot to CC in seam-dev
> ________________________________________
> From: Gavin King [gavin.king(a)gmail.com]
> Sent: Monday, 30 November 2009 2:39 PM
> To: Stuart Douglas
> Subject: Re: [seam-dev] First cab off the rank!
>
> Yes, you're right. So you would need to implement the annotation
> @interface.
>
> On Sun, Nov 29, 2009 at 10:27 PM, Stuart Douglas
> <stuart(a)baileyroberts.com.au> wrote:
>
>>
>> What about for @NonBinding members? Won't implementations need to perform
>> their own equality check if there are non binding members?
>>
>> Stuart
>>
>> ________________________________________
>> From: Gavin King [gavin.king(a)gmail.com]
>> Sent: Monday, 30 November 2009 1:22 PM
>> To: Shane Bryzak
>> Cc: Stuart Douglas; seam-dev(a)lists.jboss.org
>> Subject: Re: [seam-dev] First cab off the rank!
>>
>> Yeah. Probably you could just stick the members in an array. You
>> probably don't need to actually implement the annotation interface.
>> You would only need to implement Annotation.
>>
>> Well, the spec does not say explicitly that this would work, but it
>> seems fairly safe.
>>
>> Sent from my iPhone
>>
>> On Nov 29, 2009, at 9:07 PM, Shane Bryzak<sbryzak(a)redhat.com> wrote:
>>
>>
>>>
>>> Good point - isn't this simply a case though of implementing the
>>> equals() and hashCode() methods and checking that the members are
>>> equal,
>>> i.e. the same way that AnnotationLiteral does it?
>>>
>>> On 30/11/09 06:36, Stuart Douglas wrote:
>>>
>>>>
>>>> Does it still work when the annotation has members? That was why I
>>>> needed the javassist.
>>>>
>>>> Stuart
>>>>
>>>> ________________________________________
>>>> From: seam-dev-bounces(a)lists.jboss.org [seam-dev-
>>>> bounces(a)lists.jboss.org] On Behalf Of Shane Bryzak
>>>> [sbryzak(a)redhat.com]
>>>> Sent: Monday, 30 November 2009 5:34 AM
>>>> To: Gavin King
>>>> Cc: seam-dev(a)lists.jboss.org
>>>> Subject: Re: [seam-dev] First cab off the rank!
>>>>
>>>> Nope, just wrote my own impl of Annotation which I could then pass
>>>> into
>>>> BeanManager.getBeans().
>>>>
>>>> On 30/11/09 04:32, Gavin King wrote:
>>>>
>>>>
>>>>>
>>>>> You used a jdk dynamicproxy? Probably a better idea.
>>>>>
>>>>> Sent from my iPhone
>>>>>
>>>>> On Nov 29, 2009, at 1:01 PM, Shane Bryzak<sbryzak(a)redhat.com>
>>>>> wrote:
>>>>>
>>>>>
>>>>>
>>>>>>
>>>>>> Done, although I didn't need to use Javassist. ;)
>>>>>>
>>>>>> On 30/11/09 02:38, Gavin King wrote:
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> Stuart has some code to do this using javassist.
>>>>>>>
>>>>>>> On Sun, Nov 29, 2009 at 2:00 AM, Shane
Bryzak<sbryzak(a)redhat.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> Almost got this working, however I need to be able to
>>>>>>>> reflectively
>>>>>>>> create an
>>>>>>>> AnnotationLiteral, given a String containing the fully
qualified
>>>>>>>> name of the
>>>>>>>> qualifier. Anyone done this before?
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>
>>>> _______________________________________________
>>>> seam-dev mailing list
>>>> seam-dev(a)lists.jboss.org
>>>>
https://lists.jboss.org/mailman/listinfo/seam-dev
>>>>
>>>>
>>>
>>> _______________________________________________
>>> seam-dev mailing list
>>> seam-dev(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/seam-dev
>>>
>>
>>
>
>
> --
> Gavin King
> gavin.king(a)gmail.com
>
http://in.relation.to/Bloggers/Gavin
>
http://hibernate.org
>
http://seamframework.org
>
> _______________________________________________
> seam-dev mailing list
> seam-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/seam-dev
>