You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ke...@apache.org on 2011/04/01 20:33:03 UTC
svn commit: r1087842 - in /incubator/isis/trunk/applib/src:
main/java/org/apache/isis/applib/value/Date.java
test/java/org/apache/isis/applib/value/DateTest.java
Author: kevin
Date: Fri Apr 1 18:33:02 2011
New Revision: 1087842
URL: http://svn.apache.org/viewvc?rev=1087842&view=rev
Log:
Removed applib.value.Date dependency on Calendar (and TimeZone). Uses joda-time's LocalDate, which is tied to UTC.
Modified:
incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/value/Date.java
incubator/isis/trunk/applib/src/test/java/org/apache/isis/applib/value/DateTest.java
Modified: incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/value/Date.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/value/Date.java?rev=1087842&r1=1087841&r2=1087842&view=diff
==============================================================================
--- incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/value/Date.java (original)
+++ incubator/isis/trunk/applib/src/main/java/org/apache/isis/applib/value/Date.java Fri Apr 1 18:33:02 2011
@@ -19,9 +19,6 @@
package org.apache.isis.applib.value;
-import java.util.Calendar;
-import java.util.TimeZone;
-
import org.joda.time.DateTimeFieldType;
import org.joda.time.DateTimeZone;
import org.joda.time.LocalDate;
@@ -46,19 +43,8 @@ import org.apache.isis.applib.clock.Cloc
@Value(semanticsProviderName = "org.apache.isis.core.progmodel.facets.value.date.DateValueSemanticsProvider")
public class Date extends Magnitude<Date> {
private static final long serialVersionUID = 1L;
- private static final TimeZone UTC_TIME_ZONE;
private final LocalDate date;
- static {
- // for dotnet compatibility -
- TimeZone timeZone = TimeZone.getTimeZone("Etc/UTC");
- if (timeZone == null) {
- // for dotnet compatibility - "Etc/UTC fails in dotnet
- timeZone = TimeZone.getTimeZone("UTC");
- }
- UTC_TIME_ZONE = timeZone;
- }
-
/**
* Create a Date object for today's date.
*/
@@ -107,10 +93,8 @@ public class Date extends Magnitude<Date
if ((month < 1) || (month > 12)) {
throw new IllegalArgumentException("Month must be in the range 1 - 12 inclusive");
}
- final Calendar cal = Calendar.getInstance();
- cal.setTimeZone(UTC_TIME_ZONE);
- cal.set(year, month - 1, 0);
- final int lastDayOfMonth = cal.getMaximum(Calendar.DAY_OF_MONTH);
+ final LocalDate newDate = new LocalDate(year, month, 1);
+ final int lastDayOfMonth = newDate.dayOfMonth().getMaximumValue();;
if ((day < 1) || (day > lastDayOfMonth)) {
throw new IllegalArgumentException("Day must be in the range 1 - " + lastDayOfMonth + " inclusive: " + day);
}
@@ -122,13 +106,8 @@ public class Date extends Magnitude<Date
* @see java.util.Date
*/
public java.util.Date dateValue() {
- final Calendar cal = Calendar.getInstance();
- cal.setTimeZone(UTC_TIME_ZONE);
- cal.clear();
- cal.set(Calendar.DAY_OF_MONTH, date.getDayOfMonth());
- cal.set(Calendar.MONTH, date.getMonthOfYear()-1);
- cal.set(Calendar.YEAR, date.getYear());
- return cal.getTime();
+ java.util.Date javaDate = date.toDateTimeAtStartOfDay(DateTimeZone.UTC).toDate();
+ return javaDate;
}
/**
*
Modified: incubator/isis/trunk/applib/src/test/java/org/apache/isis/applib/value/DateTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/applib/src/test/java/org/apache/isis/applib/value/DateTest.java?rev=1087842&r1=1087841&r2=1087842&view=diff
==============================================================================
--- incubator/isis/trunk/applib/src/test/java/org/apache/isis/applib/value/DateTest.java (original)
+++ incubator/isis/trunk/applib/src/test/java/org/apache/isis/applib/value/DateTest.java Fri Apr 1 18:33:02 2011
@@ -144,6 +144,13 @@ public class DateTest {
assertEquals(new Date(2000, 3, 13), actual.startOfWeek());
assertEquals(new Date(2000, 2, 28), new Date(2000, 3, 2).startOfWeek());
}
+
+ @Test
+ public void testEndOfMonth() {
+ assertEquals(new Date(2000, 2, 29), new Date(2000, 2, 2).endOfMonth());
+ assertEquals(new Date(2001, 2, 28), new Date(2001, 2, 2).endOfMonth());
+ }
+
@Test
public void testNewWithTodaysDate() {