[seam-dev] First cab off the rank!

Shane Bryzak sbryzak at redhat.com
Sun Nov 29 23:01:20 EST 2009


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 at 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 at 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 at gmail.com]
>> Sent: Monday, 30 November 2009 1:22 PM
>> To: Shane Bryzak
>> Cc: Stuart Douglas; seam-dev at 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 at 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 at lists.jboss.org [seam-dev-
>>>> bounces at lists.jboss.org] On Behalf Of Shane Bryzak
>>>> [sbryzak at redhat.com]
>>>> Sent: Monday, 30 November 2009 5:34 AM
>>>> To: Gavin King
>>>> Cc: seam-dev at 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 at 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 at 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 at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/seam-dev
>>>>
>>>>          
>>> _______________________________________________
>>> seam-dev mailing list
>>> seam-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/seam-dev
>>>        
>>      
>
>
> --
> Gavin King
> gavin.king at gmail.com
> http://in.relation.to/Bloggers/Gavin
> http://hibernate.org
> http://seamframework.org
>
> _______________________________________________
> seam-dev mailing list
> seam-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/seam-dev
>    



More information about the seam-dev mailing list