[california/wip/calendar-spans: 13/13] Emphasize Spans, not DateSpans, in Calendar interfaces



commit dfa8f661692d717edb563148e7d4043d27163100
Author: Jim Nelson <jim yorba org>
Date:   Fri May 9 14:37:48 2014 -0700

    Emphasize Spans, not DateSpans, in Calendar interfaces

 src/calendar/calendar-date-span.vala     |    7 +++++++
 src/calendar/calendar-month-span.vala    |    6 +++---
 src/calendar/calendar-span.vala          |   15 ++++++++++++---
 src/calendar/calendar-week-span.vala     |    6 +++---
 src/calendar/calendar-year-span.vala     |    6 +++---
 src/tests/tests-calendar-month-span.vala |   12 ++++++------
 6 files changed, 34 insertions(+), 18 deletions(-)
---
diff --git a/src/calendar/calendar-date-span.vala b/src/calendar/calendar-date-span.vala
index 7b57384..ac13827 100644
--- a/src/calendar/calendar-date-span.vala
+++ b/src/calendar/calendar-date-span.vala
@@ -26,6 +26,13 @@ public class DateSpan : UnitSpan<Date> {
     }
     
     /**
+     * Create a { link DateSpan} from a { link Span}.
+     */
+    public DateSpan.from_span(Span span) {
+        base (span.start_date, span.end_date, span.start_date, span.end_date);
+    }
+    
+    /**
      * Create a { link DateSpan} from the { link ExactTimeSpan}.
      */
     public DateSpan.from_exact_time_span(ExactTimeSpan exact_time_span) {
diff --git a/src/calendar/calendar-month-span.vala b/src/calendar/calendar-month-span.vala
index 9e8525c..1d81db1 100644
--- a/src/calendar/calendar-month-span.vala
+++ b/src/calendar/calendar-month-span.vala
@@ -33,9 +33,9 @@ public class MonthSpan : UnitSpan<MonthOfYear> {
      * The month of the Span's start_date and the month of Span's end_date are used to determine
      * the MonthSpan.
      */
-    public MonthSpan.from_date_span(DateSpan date_span) {
-        MonthOfYear first = date_span.start_date.month_of_year();
-        MonthOfYear last = date_span.end_date.month_of_year();
+    public MonthSpan.from_span(Span span) {
+        MonthOfYear first = span.start_date.month_of_year();
+        MonthOfYear last = span.end_date.month_of_year();
         
         base (first, last, first.start_date, last.end_date);
     }
diff --git a/src/calendar/calendar-span.vala b/src/calendar/calendar-span.vala
index 373ff4f..4df9f97 100644
--- a/src/calendar/calendar-span.vala
+++ b/src/calendar/calendar-span.vala
@@ -127,7 +127,7 @@ public abstract class Span : BaseObject {
      * Converts the { link Span} into a { link DateSpan}.
      */
     public DateSpan to_date_span() {
-        return new DateSpan(start_date, end_date);
+        return new DateSpan.from_span(this);
     }
     
     /**
@@ -136,7 +136,7 @@ public abstract class Span : BaseObject {
      * Dates covering a partial week are included.
      */
     public WeekSpan to_week_span(FirstOfWeek first_of_week) {
-        return new WeekSpan.from_date_span(to_date_span(), first_of_week);
+        return new WeekSpan.from_span(this, first_of_week);
     }
     
     /**
@@ -145,7 +145,16 @@ public abstract class Span : BaseObject {
      * Dates covering a partial month are included.
      */
     public MonthSpan to_month_span() {
-        return new MonthSpan.from_date_span(to_date_span());
+        return new MonthSpan.from_span(this);
+    }
+    
+    /**
+     * Converts the { link Span} into a { link YearSpan}.
+     *
+     * Dates coverting a partial year are included.
+     */
+    public YearSpan to_year_span() {
+        return new YearSpan.from_span(this);
     }
     
     /**
diff --git a/src/calendar/calendar-week-span.vala b/src/calendar/calendar-week-span.vala
index cb569d1..4fb07ff 100644
--- a/src/calendar/calendar-week-span.vala
+++ b/src/calendar/calendar-week-span.vala
@@ -45,9 +45,9 @@ public class WeekSpan : UnitSpan<Week> {
      * Create a span of { link Week}s corresponding to the { link DateSpan} according to
      * { link FirstOfWeek}'s definition of a week's starting day.
      */
-    public WeekSpan.from_date_span(DateSpan date_span, FirstOfWeek first_of_week) {
-        Week first = date_span.start_date.week_of(first_of_week);
-        Week last = date_span.end_date.week_of(first_of_week);
+    public WeekSpan.from_span(Span span, FirstOfWeek first_of_week) {
+        Week first = span.start_date.week_of(first_of_week);
+        Week last = span.end_date.week_of(first_of_week);
         
         base (first, last, first.start_date, last.end_date);
         
diff --git a/src/calendar/calendar-year-span.vala b/src/calendar/calendar-year-span.vala
index b69850f..b118475 100644
--- a/src/calendar/calendar-year-span.vala
+++ b/src/calendar/calendar-year-span.vala
@@ -33,9 +33,9 @@ public class YearSpan : UnitSpan<Year> {
      * The year of the Span's start_date and the month of Span's end_date are used to determine
      * the YearSpan.
      */
-    public YearSpan.from_date_span(DateSpan date_span) {
-        Year first = date_span.start_date.year;
-        Year last = date_span.end_date.year;
+    public YearSpan.from_span(Span span) {
+        Year first = span.start_date.year;
+        Year last = span.end_date.year;
         
         base (first, last, first.start_date, last.end_date);
     }
diff --git a/src/tests/tests-calendar-month-span.vala b/src/tests/tests-calendar-month-span.vala
index 643aa4a..2756987 100644
--- a/src/tests/tests-calendar-month-span.vala
+++ b/src/tests/tests-calendar-month-span.vala
@@ -28,8 +28,8 @@ private class CalendarMonthSpan : UnitTest.Harness {
     }
     
     private bool todays_month() throws Error {
-        Calendar.MonthSpan span = new Calendar.MonthSpan.from_date_span(new Calendar.DateSpan(
-            from_today(0), from_today(0)));
+        Calendar.MonthSpan span = new Calendar.MonthSpan.from_span(
+            new Calendar.DateSpan(from_today(0), from_today(0)));
         
         return span.first.equal_to(Calendar.System.today.month_of_year())
             && span.last.equal_to(Calendar.System.today.month_of_year());
@@ -38,7 +38,7 @@ private class CalendarMonthSpan : UnitTest.Harness {
     private bool contains_date() throws Error {
         Calendar.Date first = new Calendar.Date(Calendar.DayOfMonth.for_checked(1), Calendar.Month.JAN, new 
Calendar.Year(2014));
         Calendar.Date last = new Calendar.Date(Calendar.DayOfMonth.for_checked(30), Calendar.Month.JAN, new 
Calendar.Year(2014));
-        Calendar.MonthSpan span = new Calendar.MonthSpan.from_date_span(new Calendar.DateSpan(first, last));
+        Calendar.MonthSpan span = new Calendar.MonthSpan.from_span(new Calendar.DateSpan(first, last));
         
         return span.has_date(first.adjust(15));
     }
@@ -46,7 +46,7 @@ private class CalendarMonthSpan : UnitTest.Harness {
     private bool has_month() throws Error {
         Calendar.Date first = new Calendar.Date(Calendar.DayOfMonth.for_checked(1), Calendar.Month.JAN, new 
Calendar.Year(2014));
         Calendar.Date last = new Calendar.Date(Calendar.DayOfMonth.for_checked(30), Calendar.Month.MAR, new 
Calendar.Year(2014));
-        Calendar.MonthSpan span = new Calendar.MonthSpan.from_date_span(new Calendar.DateSpan(first, last));
+        Calendar.MonthSpan span = new Calendar.MonthSpan.from_span(new Calendar.DateSpan(first, last));
         
         return span.contains(new Calendar.MonthOfYear(Calendar.Month.FEB, new Calendar.Year(2014)));
     }
@@ -54,7 +54,7 @@ private class CalendarMonthSpan : UnitTest.Harness {
     private bool iterator() throws Error {
         Calendar.Date first = new Calendar.Date(Calendar.DayOfMonth.for_checked(1), Calendar.Month.JAN, new 
Calendar.Year(2014));
         Calendar.Date last = new Calendar.Date(Calendar.DayOfMonth.for_checked(30), Calendar.Month.JUN, new 
Calendar.Year(2014));
-        Calendar.MonthSpan span = new Calendar.MonthSpan.from_date_span(new Calendar.DateSpan(first, last));
+        Calendar.MonthSpan span = new Calendar.MonthSpan.from_span(new Calendar.DateSpan(first, last));
         
         Calendar.Month[] months = {
             Calendar.Month.JAN,
@@ -80,7 +80,7 @@ private class CalendarMonthSpan : UnitTest.Harness {
     private bool in_operator() throws Error {
         Calendar.Date first = new Calendar.Date(Calendar.DayOfMonth.for_checked(1), Calendar.Month.JAN, new 
Calendar.Year(2014));
         Calendar.Date last = new Calendar.Date(Calendar.DayOfMonth.for_checked(30), Calendar.Month.MAR, new 
Calendar.Year(2014));
-        Calendar.MonthSpan span = new Calendar.MonthSpan.from_date_span(new Calendar.DateSpan(first, last));
+        Calendar.MonthSpan span = new Calendar.MonthSpan.from_span(new Calendar.DateSpan(first, last));
         Calendar.MonthOfYear month = new Calendar.MonthOfYear(Calendar.Month.FEB, new Calendar.Year(2014));
         
         return month in span;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]