You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by Dmitry Gusev <dm...@gmail.com> on 2008/10/17 10:44:16 UTC
Request for introducing java.util.Date type coercion out-of-the-box
It would be great to implement Date type coertion out-of-the-box through it
milliseconds representation.
Currently I have to contribute the coertion to my app module:
public static void
contributeTypeCoercer(Configuration<CoercionTuple<Long, Date>>
configuration) {
Coercion<Long, Date> coercion = new Coercion<Long, Date>() {
public Date coerce(Long input) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(input);
return calendar.getTime();
}
};
configuration.add(new CoercionTuple<Long, Date>(Long.class,
Date.class,
coercion));
}
Passing parameters to pagelink component example:
<t:pagelink t:id="edit" page="curriculum/holidays/edit"
context="holiday.date.time">Edit</t:pagelink>
---
public class Holiday {
...
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
...
}
---
And on the Edit page activation/deactivation methods looks like:
public void onActivate(Date date) {
this.date = date;
// ...
}
public Date onPassivate() {
return date;
}
---
Having Date type coercion support out-of-the-box will let me pass Date
parameters directly (without invoking Date.getTime() on the actual parameter
instance).
<de...@tapestry.apache.org>--
С уважением,
Дмитрий Гусев
Re: Request for introducing java.util.Date type coercion out-of-the-box
Posted by Dmitry Gusev <dm...@gmail.com>.
On Fri, Oct 17, 2008 at 18:20, Howard Lewis Ship <hl...@gmail.com> wrote:
> Date conversions in Java are hugely ugly.
But this doesn't make java.util.Date to be unused, isn't it? We're still use
Date type whether its ugly or not.
> Are you sure there isn't a
> time zone issue involved with this coercion?
According to Javadoc (see below) it always returns the same value for all
timezones, since its GMT.
/**
* Returns the number of milliseconds since January 1, 1970, 00:00:00
GMT
* represented by this <tt>Date</tt> object.
*
* @return the number of milliseconds since January 1, 1970, 00:00:00
GMT
* represented by this date.
*/
public long getTime() {
return getTimeImpl();
}
Are you sure you want to
> see a large number in your URL rather than something that looks like a
> Date?
Making java.util.Date looks like a date (i.e. 01/02/2008) will confuse -- is
this January, 2nd or February 1st? Introducing special chars to URL (/, :, '
', +, etc.) will cause it to be escaped.
So I don't see any other options rather than numbers, do you? I'd like to
see your choise -- how're you doing this? I mean, you're using Dates, don't
you?
The number, whether it ugly or not, it uniform. And what it the URL? Its
Uniform Resource Locator, and its GET parameters are just a transport, so
let them be uniform too. Thats my point of view.
Am I missed somethig?
>
>
> On Fri, Oct 17, 2008 at 1:44 AM, Dmitry Gusev <dm...@gmail.com>
> wrote:
> > It would be great to implement Date type coertion out-of-the-box through
> it
> > milliseconds representation.
> >
> > Currently I have to contribute the coertion to my app module:
> >
> > public static void
> > contributeTypeCoercer(Configuration<CoercionTuple<Long, Date>>
> > configuration) {
> > Coercion<Long, Date> coercion = new Coercion<Long, Date>() {
> > public Date coerce(Long input) {
> > Calendar calendar = Calendar.getInstance();
> > calendar.setTimeInMillis(input);
> > return calendar.getTime();
> > }
> > };
> >
> > configuration.add(new CoercionTuple<Long, Date>(Long.class,
> > Date.class,
> > coercion));
> > }
> >
> >
> > Passing parameters to pagelink component example:
> >
> > <t:pagelink t:id="edit" page="curriculum/holidays/edit"
> > context="holiday.date.time">Edit</t:pagelink>
> >
> > ---
> >
> > public class Holiday {
> > ...
> > public Date getDate() {
> > return date;
> > }
> > public void setDate(Date date) {
> > this.date = date;
> > }
> > ...
> > }
> >
> > ---
> >
> > And on the Edit page activation/deactivation methods looks like:
> >
> > public void onActivate(Date date) {
> > this.date = date;
> > // ...
> > }
> >
> > public Date onPassivate() {
> > return date;
> > }
> >
> > ---
> >
> > Having Date type coercion support out-of-the-box will let me pass Date
> > parameters directly (without invoking Date.getTime() on the actual
> parameter
> > instance).
> >
> >
> >
> > <de...@tapestry.apache.org>--
> > С уважением,
> > Дмитрий Гусев
> >
>
>
>
> --
> Howard M. Lewis Ship
>
> Creator Apache Tapestry and Apache HiveMind
>
--
С уважением,
Дмитрий Гусев
Re: Request for introducing java.util.Date type coercion out-of-the-box
Posted by Howard Lewis Ship <hl...@gmail.com>.
Date conversions in Java are hugely ugly. Are you sure there isn't a
time zone issue involved with this coercion? Are you sure you want to
see a large number in your URL rather than something that looks like a
Date?
On Fri, Oct 17, 2008 at 1:44 AM, Dmitry Gusev <dm...@gmail.com> wrote:
> It would be great to implement Date type coertion out-of-the-box through it
> milliseconds representation.
>
> Currently I have to contribute the coertion to my app module:
>
> public static void
> contributeTypeCoercer(Configuration<CoercionTuple<Long, Date>>
> configuration) {
> Coercion<Long, Date> coercion = new Coercion<Long, Date>() {
> public Date coerce(Long input) {
> Calendar calendar = Calendar.getInstance();
> calendar.setTimeInMillis(input);
> return calendar.getTime();
> }
> };
>
> configuration.add(new CoercionTuple<Long, Date>(Long.class,
> Date.class,
> coercion));
> }
>
>
> Passing parameters to pagelink component example:
>
> <t:pagelink t:id="edit" page="curriculum/holidays/edit"
> context="holiday.date.time">Edit</t:pagelink>
>
> ---
>
> public class Holiday {
> ...
> public Date getDate() {
> return date;
> }
> public void setDate(Date date) {
> this.date = date;
> }
> ...
> }
>
> ---
>
> And on the Edit page activation/deactivation methods looks like:
>
> public void onActivate(Date date) {
> this.date = date;
> // ...
> }
>
> public Date onPassivate() {
> return date;
> }
>
> ---
>
> Having Date type coercion support out-of-the-box will let me pass Date
> parameters directly (without invoking Date.getTime() on the actual parameter
> instance).
>
>
>
> <de...@tapestry.apache.org>--
> С уважением,
> Дмитрий Гусев
>
--
Howard M. Lewis Ship
Creator Apache Tapestry and Apache HiveMind