You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by pm...@apache.org on 2007/07/20 09:29:39 UTC
svn commit: r557903 -
/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/model/AbstractScheduleModel.java
Author: pmahoney
Date: Fri Jul 20 00:29:38 2007
New Revision: 557903
URL: http://svn.apache.org/viewvc?view=rev&rev=557903
Log:
TOMAHAWK-1060: Refactor for lazy initialisation of days and events
Modified:
myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/model/AbstractScheduleModel.java
Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/model/AbstractScheduleModel.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/model/AbstractScheduleModel.java?view=diff&rev=557903&r1=557902&r2=557903
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/model/AbstractScheduleModel.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/schedule/model/AbstractScheduleModel.java Fri Jul 20 00:29:38 2007
@@ -24,6 +24,7 @@
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
+import java.util.SortedSet;
import java.util.TimeZone;
import java.util.TreeSet;
@@ -43,7 +44,7 @@
// ~ Instance fields
// --------------------------------------------------------
- protected final TreeSet days;
+ private TreeSet days;
private Date selectedDate = new Date();
@@ -66,7 +67,6 @@
public AbstractScheduleModel(TimeZone timeZone)
{
- this.days = new TreeSet();
this.timeZone = timeZone;
}
@@ -74,9 +74,50 @@
// ----------------------------------------------------------------
/**
+ * Get the set of days. Initialise on first call.
+ *
+ */
+ protected SortedSet getDays()
+ {
+ if (days == null)
+ {
+ days = new TreeSet();
+
+ switch (mode)
+ {
+ case DAY:
+ setDay(this.selectedDate);
+
+ break;
+
+ case WORKWEEK:
+ setWorkWeek(this.selectedDate);
+
+ break;
+
+ case WEEK:
+ setWeek(this.selectedDate);
+
+ break;
+
+ case MONTH:
+ setMonth(this.selectedDate);
+
+ break;
+
+ default:
+ setDay(this.selectedDate);
+ }
+ }
+
+ return days;
+ }
+
+ /**
* Returns the timezone setting for this model
*/
- public TimeZone getTimeZone () {
+ public TimeZone getTimeZone ()
+ {
return this.timeZone;
}
@@ -85,7 +126,7 @@
*/
public boolean isEmpty()
{
- return days.isEmpty();
+ return getDays().isEmpty();
}
/**
@@ -116,32 +157,7 @@
}
this.selectedDate = date;
-
- switch (mode)
- {
- case DAY:
- setDay(this.selectedDate);
-
- break;
-
- case WORKWEEK:
- setWorkWeek(this.selectedDate);
-
- break;
-
- case WEEK:
- setWeek(this.selectedDate);
-
- break;
-
- case MONTH:
- setMonth(this.selectedDate);
-
- break;
-
- default:
- setDay(this.selectedDate);
- }
+ this.days = null;
}
/**
@@ -198,7 +214,7 @@
*/
public Object get(int index)
{
- Object[] dayArray = days.toArray();
+ Object[] dayArray = getDays().toArray();
Object returnObject = dayArray[index];
@@ -210,7 +226,7 @@
*/
public Iterator iterator()
{
- return days.iterator();
+ return getDays().iterator();
}
/**
@@ -218,7 +234,7 @@
*/
public int size()
{
- return days.size();
+ return getDays().size();
}
/**
@@ -398,7 +414,7 @@
ScheduleDay day = new ScheduleDay(date, getTimeZone());
loadDayAttributes(day);
- days.add(day);
+ getDays().add(day);
return day;
}
@@ -410,13 +426,16 @@
*/
protected void clear()
{
- for (Iterator dayIterator = days.iterator(); dayIterator.hasNext();)
- {
- ScheduleDay day = (ScheduleDay) dayIterator.next();
- day.clear();
- }
+ if (days != null)
+ {
+ for (Iterator dayIterator = days.iterator(); dayIterator.hasNext();)
+ {
+ ScheduleDay day = (ScheduleDay) dayIterator.next();
+ day.clear();
+ }
- days.clear();
+ days.clear();
+ }
}
/**
@@ -460,7 +479,7 @@
{
ScheduleEntry entry = (ScheduleEntry) entryIterator.next();
- for (Iterator dayIterator = days.iterator(); dayIterator.hasNext();)
+ for (Iterator dayIterator = getDays().iterator(); dayIterator.hasNext();)
{
ScheduleDay day = (ScheduleDay) dayIterator.next();