now i have this an interface like this (naming can be changed of course)
public interface ISupplyConverters extends Serializable
{
public IConverter getConverter(Class type);
}
This is already implemented by 3 classes:
Component, Session and ConverterSupplier (which was previously Converter)
Component just does: Session.getConverter(type)
and Session by default makes that ConverterSupplier
now the IConverter interface looks like this:
public interface IConverter extends Serializable
{
Object convertToObject(String value, Locale locale);
String convertToString(Object value, Locale locale);
}
And for this we have a DateConverter, IntegerConverter and so on.
So what previously was Component.getConverter()
is now Component.getConverter(Class type)
People can override that and directly return a Conveter they want for that specific Component.
Or they can do that in Session.
So for example do in session:
Session.getConverter(Class type)
{
if(type == XXXX.class) return MyXXXXConverter();
return super.getConverter(type);
}
Then you easily have overriden for every component a specific converter.
johan
On 5/17/06, Matej Knopp <
[EMAIL PROTECTED]> wrote:
Eelco Hillenius wrote:
> I'm still a bit worried about the naming etc.
>
> In my opinion, the thing we want to do is to do input-output
> conversion for models. Models could do this themselves, but pulling
> the conversion out makes things way more flexible. So... as this is
> what we are doing, I would propose to choose a name that reflects
> this, for example:
>
> IModelConverter {
>
> String toOutput(Object modelValue);
>
> Object toInput(String requestValue);
>
> boolean supports(Class type);
> }
Say the converter supports converting to Integer and Long.
how would you decide in toInput("34") whether the result
should be Long or Integer?
I'd stay with Johan's original convertToObject(String, Class);
-Matej
>
> I'm not sure about the type paramter vs supports.
>
> Eelco
>
>
> On 5/17/06, Igor Vaynberg < [EMAIL PROTECTED]> wrote:
>> we might also consider adding IConverter.supports(Class) to make
>> registration easier.
>>
>> -Igor
>>
>>
>>
>> On 5/14/06, Johan Compagner < [EMAIL PROTECTED]> wrote:
>> >
>> > Hi,
>> >
>> > first currently we have IConverter and ITypeConverter , i want to
>> combine
>> those 2 to be one interface
>> > And then a converter must be easy to make but also to understand.
>> >
>> > So i can do this:
>> >
>> > IConverter.convertToObject (String, Class)
>> > IConverter.convertToString(Object)
>> >
>> > Then writing a DateConverter is pretty simple, you have one
>> SimpleDateFormat (or more per locale)
>> > and then in toObject you do parse and in toString you do format
>> >
>> > The thing is we loose a bit of the more "generic" nature we have now
>> > because in the current setup we could do:
>> >
>> > conveter.convert(new Double(10), Integer.class) to convert from a
>> double
>> to a integer.
>> > Do we need this? We could make:
>> >
>> > IConverter.convertObject(Object, Class) instead of
>> IConverter.convertToObject(String, Class)
>> > besides to convertToString.
>> >
>> > But that would complicate converters again.
>> >
>> > That Class param can be ignored by a Converter impl (or it could
>> check if
>> it was the type for which this converter is build.)
>> > But having that class param there then it is possible to make a
>> compound
>> converter and only have one interface
>> > so that you can much easier make youre converter for a specific
>> textfield.
>> >
>> >
>> > johan
>> >
>> >
>> >
>>
>>
>
>
> -------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job
> easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=k&kid0709&bid&3057&dat1642
> _______________________________________________
> Wicket-develop mailing list
> Wicket-develop@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-develop
>
-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Wicket-develop mailing list
Wicket-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-develop