|
1 | 1 | /* |
2 | | - * Copyright 2002-2011 the original author or authors. |
| 2 | + * Copyright 2002-2015 the original author or authors. |
3 | 3 | * |
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | 5 | * you may not use this file except in compliance with the License. |
@@ -48,18 +48,22 @@ public class ScheduleItemList implements Serializable { |
48 | 48 | private Integer numberOfRooms; |
49 | 49 | private SortedSet<Date> days; |
50 | 50 |
|
51 | | - @XmlElement(name="scheduleItems") |
| 51 | + @XmlElement(name="scheduleItems") |
52 | 52 | private List<ScheduleItem> scheduleItems; |
53 | 53 |
|
54 | | - @XmlElement(name="headerItems") |
55 | | - private List<ScheduleItem> headerItems; |
56 | | - private transient Map<Date, List<ScheduleItem>> headerItemsByDate; |
| 54 | + @XmlElement(name="headerItems") |
| 55 | + private List<ScheduleItem> headerItems; |
| 56 | + private transient Map<Date, List<ScheduleItem>> headerItemsByDate; |
57 | 57 |
|
58 | | - @XmlElement(name="breakoutItems") |
59 | | - private List<ScheduleItem> breakoutItems; |
| 58 | + @XmlElement(name="registrationItems") |
| 59 | + private List<ScheduleItem> registrationItems; |
| 60 | + private transient Map<Date, List<ScheduleItem>> registrationItemsByDate; |
60 | 61 |
|
| 62 | + @XmlElement(name="breakoutItems") |
| 63 | + private List<ScheduleItem> breakoutItems; |
61 | 64 |
|
62 | | - private transient Map<Date, List<ScheduleItem>> breakoutItemsByDate; |
| 65 | + |
| 66 | + private transient Map<Date, List<ScheduleItem>> breakoutItemsByDate; |
63 | 67 |
|
64 | 68 | public SortedSet<Date> getDays() { |
65 | 69 | return days; |
@@ -133,97 +137,142 @@ public void setScheduleItems(List<ScheduleItem> scheduleItems) { |
133 | 137 | this.scheduleItems = scheduleItems; |
134 | 138 | } |
135 | 139 |
|
136 | | - public List<ScheduleItem> getHeaderItems() { |
137 | | - if (headerItems == null) { |
138 | | - headerItems = new ArrayList<ScheduleItem>(); |
139 | | - for (ScheduleItem item : scheduleItems) { |
140 | | - if (isHeaderItem(item)) { |
141 | | - headerItems.add(item); |
142 | | - } |
143 | | - } |
144 | | - } |
145 | | - return headerItems; |
146 | | - } |
147 | | - |
148 | | - public List<ScheduleItem> getBreakoutItems() { |
149 | | - if (breakoutItems == null) { |
150 | | - breakoutItems = new ArrayList<ScheduleItem>(); |
151 | | - for (ScheduleItem item : scheduleItems) { |
152 | | - if (isBreakoutItem(item)) { |
153 | | - breakoutItems.add(item); |
154 | | - } |
155 | | - } |
156 | | - } |
157 | | - return breakoutItems; |
158 | | - } |
159 | | - |
160 | | - public boolean isHeaderItem(ScheduleItem item) { |
161 | | - return !item.getScheduleItemType().equals(ScheduleItemType.SESSION) && !item.getScheduleItemType().equals(ScheduleItemType.BREAK); |
162 | | - } |
163 | | - |
164 | | - public boolean isBreakoutItem(ScheduleItem item) { |
165 | | - return item.getScheduleItemType().equals(ScheduleItemType.SESSION); |
166 | | - } |
167 | | - |
168 | | - |
169 | | - public List<ScheduleItem> findHeaderItemsOnDate(Date search) { |
170 | | - if (headerItemsByDate == null) { |
171 | | - headerItemsByDate = new HashMap<Date, List<ScheduleItem>>(scheduleItems.size()); |
172 | | - for (Date date : days) { |
173 | | - for (ScheduleItem item : getHeaderItems()) { |
174 | | - List<ScheduleItem> items = headerItemsByDate.get(date); |
175 | | - if (items == null) { |
176 | | - items = new ArrayList<ScheduleItem>(getHeaderItems().size()); |
177 | | - headerItemsByDate.put(date, items); |
178 | | - } |
179 | | - |
180 | | - if (item.getFromTime().getDate() == date.getDate()) { |
181 | | - items.add(item); |
182 | | - } |
183 | | - } |
184 | | - } |
185 | | - } |
186 | | - return headerItemsByDate.get(search); |
187 | | - } |
188 | | - |
189 | | - public List<ScheduleItem> findBreakoutItemsOnDate(Date search) { |
190 | | - if (breakoutItemsByDate == null) { |
191 | | - breakoutItemsByDate = new HashMap<Date, List<ScheduleItem>>(scheduleItems.size()); |
192 | | - for (Date date : days) { |
193 | | - for (ScheduleItem item : getBreakoutItems()) { |
194 | | - List<ScheduleItem> items = breakoutItemsByDate.get(date); |
195 | | - if (items == null) { |
196 | | - items = new ArrayList<ScheduleItem>(getBreakoutItems().size()); |
197 | | - breakoutItemsByDate.put(date, items); |
198 | | - } |
199 | | - |
200 | | - if (item.getFromTime().getDate() == date.getDate()) { |
201 | | - items.add(item); |
202 | | - } |
203 | | - } |
204 | | - } |
205 | | - } |
206 | | - return breakoutItemsByDate.get(search); |
207 | | - } |
208 | | - |
209 | | - public SortedSet<Room> findRooms(Date date) { |
210 | | - |
211 | | - SortedSet<Room>rooms = new TreeSet<Room>(); |
212 | | - for (ScheduleItem item : findBreakoutItemsOnDate(date)) { |
213 | | - rooms.add(item.getRoom()); |
214 | | - } |
215 | | - |
216 | | - return rooms; |
217 | | - } |
218 | | - |
219 | | - public List<ScheduleItem> findBreakoutItemsOnDateInRoom(Date date, Room room) { |
220 | | - ArrayList<ScheduleItem> items = new ArrayList<ScheduleItem>(); |
221 | | - for (ScheduleItem item : findBreakoutItemsOnDate(date)) { |
222 | | - if (item.getRoom().equals(room)) { |
223 | | - items.add(item); |
224 | | - } |
225 | | - } |
226 | | - return items; |
227 | | - } |
| 140 | + public List<ScheduleItem> getRegistrationItems() { |
| 141 | + if (registrationItems == null) { |
| 142 | + registrationItems = new ArrayList<ScheduleItem>(); |
| 143 | + for (ScheduleItem item : scheduleItems) { |
| 144 | + if (isRegistrationItem(item)) { |
| 145 | + registrationItems.add(item); |
| 146 | + } |
| 147 | + } |
| 148 | + } |
| 149 | + return registrationItems; |
| 150 | + } |
| 151 | + |
| 152 | + public List<ScheduleItem> getHeaderItems() { |
| 153 | + if (headerItems == null) { |
| 154 | + headerItems = new ArrayList<ScheduleItem>(); |
| 155 | + for (ScheduleItem item : scheduleItems) { |
| 156 | + if (isHeaderItem(item)) { |
| 157 | + headerItems.add(item); |
| 158 | + } |
| 159 | + } |
| 160 | + } |
| 161 | + return headerItems; |
| 162 | + } |
| 163 | + |
| 164 | + public List<ScheduleItem> getBreakoutItems() { |
| 165 | + if (breakoutItems == null) { |
| 166 | + breakoutItems = new ArrayList<ScheduleItem>(); |
| 167 | + for (ScheduleItem item : scheduleItems) { |
| 168 | + if (isBreakoutItem(item)) { |
| 169 | + breakoutItems.add(item); |
| 170 | + } |
| 171 | + } |
| 172 | + } |
| 173 | + return breakoutItems; |
| 174 | + } |
| 175 | + |
| 176 | + public boolean isHeaderItem(ScheduleItem item) { |
| 177 | + return !item.getScheduleItemType().equals(ScheduleItemType.SESSION) && !item.getScheduleItemType().equals(ScheduleItemType.BREAK); |
| 178 | + } |
| 179 | + |
| 180 | + public boolean isRegistrationItem(ScheduleItem item) { |
| 181 | + return item.getScheduleItemType().equals(ScheduleItemType.REGISTRATION); |
| 182 | + } |
| 183 | + |
| 184 | + public boolean isBreakoutItem(ScheduleItem item) { |
| 185 | + return item.getScheduleItemType().equals(ScheduleItemType.SESSION); |
| 186 | + } |
| 187 | + |
| 188 | + public List<ScheduleItem> findRegistrationItemsOnDate(Date search) { |
| 189 | + if (registrationItems == null) { |
| 190 | + registrationItemsByDate = new HashMap<>(); |
| 191 | + for (Date date : days) { |
| 192 | + for (ScheduleItem item : getRegistrationItems()) { |
| 193 | + List<ScheduleItem> items = registrationItemsByDate.get(date); |
| 194 | + if (items == null) { |
| 195 | + items = new ArrayList<ScheduleItem>(getRegistrationItems().size()); |
| 196 | + registrationItemsByDate.put(date, items); |
| 197 | + } |
| 198 | + if (item.getFromTime().getDate() == date.getDate()) { |
| 199 | + items.add(item); |
| 200 | + } |
| 201 | + } |
| 202 | + } |
| 203 | + } |
| 204 | + return registrationItemsByDate.get(search); |
| 205 | + } |
| 206 | + |
| 207 | + public List<ScheduleItem> findHeaderItemsOnDate(Date search) { |
| 208 | + if (headerItemsByDate == null) { |
| 209 | + headerItemsByDate = new HashMap<Date, List<ScheduleItem>>(scheduleItems.size()); |
| 210 | + for (Date date : days) { |
| 211 | + for (ScheduleItem item : getHeaderItems()) { |
| 212 | + List<ScheduleItem> items = headerItemsByDate.get(date); |
| 213 | + if (items == null) { |
| 214 | + items = new ArrayList<ScheduleItem>(getHeaderItems().size()); |
| 215 | + headerItemsByDate.put(date, items); |
| 216 | + } |
| 217 | + |
| 218 | + if (item.getFromTime().getDate() == date.getDate()) { |
| 219 | + items.add(item); |
| 220 | + } |
| 221 | + } |
| 222 | + } |
| 223 | + } |
| 224 | + return headerItemsByDate.get(search); |
| 225 | + } |
| 226 | + |
| 227 | + public List<ScheduleItem> findBreakItemsOnDate(Date search) { |
| 228 | + final List<ScheduleItem> breakItems = new ArrayList<>(); |
| 229 | + |
| 230 | + for (ScheduleItem item : scheduleItems) { |
| 231 | + if ((search.getDate() == item.getFromTime().getDate()) && ScheduleItemType.BREAK.equals(item.getScheduleItemType())) { |
| 232 | + breakItems.add(item); |
| 233 | + } |
| 234 | + } |
| 235 | + return breakItems; |
| 236 | + } |
| 237 | + |
| 238 | + public List<ScheduleItem> findBreakoutItemsOnDate(Date search) { |
| 239 | + if (breakoutItemsByDate == null) { |
| 240 | + breakoutItemsByDate = new HashMap<Date, List<ScheduleItem>>(scheduleItems.size()); |
| 241 | + for (Date date : days) { |
| 242 | + for (ScheduleItem item : getBreakoutItems()) { |
| 243 | + List<ScheduleItem> items = breakoutItemsByDate.get(date); |
| 244 | + if (items == null) { |
| 245 | + items = new ArrayList<ScheduleItem>(getBreakoutItems().size()); |
| 246 | + breakoutItemsByDate.put(date, items); |
| 247 | + } |
| 248 | + |
| 249 | + if (item.getFromTime().getDate() == date.getDate()) { |
| 250 | + items.add(item); |
| 251 | + } |
| 252 | + } |
| 253 | + } |
| 254 | + } |
| 255 | + return breakoutItemsByDate.get(search); |
| 256 | + } |
| 257 | + |
| 258 | + public SortedSet<Room> findRooms(Date date) { |
| 259 | + |
| 260 | + SortedSet<Room>rooms = new TreeSet<Room>(); |
| 261 | + for (ScheduleItem item : findBreakoutItemsOnDate(date)) { |
| 262 | + rooms.add(item.getRoom()); |
| 263 | + } |
| 264 | + |
| 265 | + return rooms; |
| 266 | + } |
| 267 | + |
| 268 | + public List<ScheduleItem> findBreakoutItemsOnDateInRoom(Date date, Room room) { |
| 269 | + ArrayList<ScheduleItem> items = new ArrayList<ScheduleItem>(); |
| 270 | + for (ScheduleItem item : findBreakoutItemsOnDate(date)) { |
| 271 | + if (item.getRoom().equals(room)) { |
| 272 | + items.add(item); |
| 273 | + } |
| 274 | + } |
| 275 | + return items; |
| 276 | + } |
228 | 277 |
|
229 | 278 | } |
0 commit comments