imho, that seems like that adds a lot of unnecessary code. One of the
nice things about Wicket is that it keeps the bloat to a minimum.

-----Original Message-----
From: Doug Donohoe [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, May 14, 2008 8:21 AM
To: users@wicket.apache.org
Subject: Re: Using generics with some non-generic classes in Wicket


Somewhat related to this thread, when I moved to generics win Wicket
1.4,  I created some utility classes such as:

public class VoidContainer extends WebMarkupContainer<Void> public
class VoidPanel extends Panel<Void> public class StringLabel extends
Label<String>

public class IntegerModel extends Model<Integer> public class
StringModel extends Model<String> public class DateModel extends
Model<Date> public class DoubleModel extends Model<Double>

And so on.  This made my wicket code cleaner and easier to use.  I think
the Wicket 1.4 generics implementation is headed in the right direction.
It was a pain at first because I had to parameterize everything, but
creating convenience classes like this made it easier.

I'm thinking about creating a patch with a suite of these types of
classes because I think users will want something like this.

-Doug


Johan Compagner wrote:
> 
> The problem is that wicket needs an annotation
> 
> <genericsOptional>
> 
> so that all the warnings about raw types are gone.
> 
> A component only has to be generic if you use the IModel constructor 
> or call getModel(), getModelObject() methods..
> for the rest it is not really needed
> 
> johan
> 
> On Wed, May 14, 2008 at 9:28 AM, Sebastiaan van Erk 
> <[EMAIL PROTECTED]>
> wrote:
> 
>> My post kind of missed the point, I shouldn't post when I'm already 
>> half asleep. :-)
>>
>> Obviously MarkupContainer satisfies the MarkupContainer<?> in a 
>> method argument, so it accepts the raw type. However, it generates a 
>> warning because the method says it's generified, so you should be 
>> using the generic type.
>>
>> Johan Compagner wrote:
>>
>> > I dont care, because i cant do any thing with the ? The only thing 
>> > it enforces is that it must now be a generic class which is 
>> > annoying. Not to mention that in that area eclipse and javac accept

>> > different things....
>> >
>>
>> The reason it warns you to use generics when generics are wanted is 
>> because Sun wants to be able to make it *required* (in a future 
>> release) to use generics where generics are wanted; at least, so I 
>> read... I think in the real world they wouldn't dare to do this 
>> because it would piss off so many users and break so much stuff. :-)
>>
>> But the idea is that if something is generified you should be using a

>> type parameter, and using a raw type is *purely* for backwards 
>> compatibility with legacy code.
>>
>> Regards,
>> Sebastiaan
>>
>>  So or we in wicket dont use <?> any where and have supress warning
>> > everywhere for that or we do use it and then suddenly it is in my 
>> > eyes restricted to much.
>> >
>>
>> I don't understand
>>
>>
>> > On 5/14/08, Sebastiaan van Erk <[EMAIL PROTECTED]> wrote:
>> >
>> > > Johan Compagner wrote:
>> > >
>> > > > yes thats the reason
>> > > >
>> > > > you are calling the method add with a generified component but 
>> > > > that container itself is not generified
>> > > >
>> > > > i dont like this about generics expecially the onces like this:
>> > > >
>> > > > add(MarkupContainer<?> container)
>> > > >
>> > > > then suddenly a none generified component cant be added...
>> > > > thats really stupid <?> should mean anything.. including none 
>> > > > generics
>> > > >
>> > > No, that's not correct. For example, List<?> is much more 
>> > > restrictive than a raw List (which is a List). To a raw list you 
>> > > can add an instance of any type whatever, i.e., list.add(new 
>> > > Object()). But in List<?> the ? is a wildcard which says it could

>> > > be any type there, i.e., it could be a List<Integer>. But you 
>> > > can't add a new Object() to a List<Integer>!
>> > >
>> > > Thus MarkupContainer<?> means "MarkupContainer parameterized by 
>> > > some unknown type", and *not* MarkupContainer parameterized by 
>> > > Object, which is what the raw type means.
>> > >
>> > > Regards,
>> > > Sebastiaan
>> > >
>> > >  johan
>> > > >
>> > > >
>> > > > On Tue, May 13, 2008 at 5:55 PM, Stefan Simik < 
>> > > > [EMAIL PROTECTED]>
>> > > > wrote:
>> > > >
>> > > >  I have one idea,
>> > > > >
>> > > > > the reason of the warnigs is, that parent of 
>> > > > > AjaxPagingNavigator is PagingNavigator, which has parent 
>> > > > > Panel ---> that is not parameterized.
>> > > > >
>> > > > > The same problem is with LoopItem, which extends the 
>> > > > > WebMarkupContainer ---> that is not parameterized.
>> > > > >
>> > > > > ? could this be the reason ?
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > > Stefan Simik wrote:
>> > > > >
>> > > > > > Mhmm, it is meaningful ;) I will know in future, thx
>> > > > > >
>> > > > > > One of the last occuring warning is, when working with
>> > > > > > MarkupContainer#add(...)  or  #addOrReplace(...)  method.
>> > > > > >
>> > > > > > Example:  I have a simple AjaxPagingNavigator, to which I 
>> > > > > > add a simple ListView
>> > > > > >
>> > > > > >
>> ---------------------------------------------------------------------
>> --
>> > > > > > ListView<Integer> menu = new ListView<Integer>("id",
numbers){
>> > > > > >    //....populate metods
>> > > > > > }
>> > > > > > add(menu);        //warning here
>> > > > > >
>> > > > > > The warning says:
>> > > > > > "Type safety: The method add(Component...) belongs to the 
>> > > > > > raw type MarkupContainer.
>> > > > > > References to generic type MarkupContainer<T> should be 
>> > > > > > parameterized"
>> > > > > >
>> > > > > > I cannot find out, what's the warning reason, because 
>> > > > > > ListView self is parameterized.
>> > > > > >
>> > > > > >
>> > > > > >  --
>> > > > > View this message in context:
>> > > > >
>> > > > >
>> > >
>> http://www.nabble.com/Using-generics-with-some-non-generic-classes-in
>> -Wicket-tp17208928p17212015.html
>> > >
>> > > > Sent from the Wicket - User mailing list archive at Nabble.com.
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> ---------------------------------------------------------------------
>> > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
>> > > > > For additional commands, e-mail: [EMAIL PROTECTED]
>> > > > >
>> > > > >
>> > > > >
>> > -------------------------------------------------------------------
>> > -- To unsubscribe, e-mail: [EMAIL PROTECTED]
>> > For additional commands, e-mail: [EMAIL PROTECTED]
>> >
>> >
> 
> 

--
View this message in context:
http://www.nabble.com/Using-generics-with-some-non-generic-classes-in-Wi
cket-1.4M1-tp17208928p17229755.html
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to