This data structure allows to quickly retrieve the state of a unit for a provided time period. The value is either the default value of the unit or the value that the event introduced. If the value in either BAT_DAY or BAT_HOUR is -1 it means that that specific day or that specific hour are non-determinant. This means that in order to determine the value of the event for that point in time we need to look at a lower level of granularity. Example - consider breaking up the following event start-date: 2016-01-01 1210 end-date: 2016-01-03 1210 value: 10 [BAT_DAY][2016][01][d1][-1] - The first day starts at 1210 so the DAY array is not enough [BAT_DAY][2016][01][d2][10] - The second day is a full day at the same value of 10 [BAT_DAY][2016][01][d3][-1] - The last day is no a full day so the day array in non-determinant [BAT_HOUR][2016][01][d1][h12][-1] - The first hour of the event starts at 10 minutes so the hour is non-determinant [BAT_HOUR][2016][01][d1][h13][10] [BAT_HOUR][2016][01][d1][h14][10] [BAT_HOUR][2016][01][d1][h15][10] [BAT_HOUR][2016][01][d1][h16][10] [BAT_HOUR][2016][01][d1][h17][10] [BAT_HOUR][2016][01][d1][h18][10] [BAT_HOUR][2016][01][d1][h19][10] [BAT_HOUR][2016][01][d1][h20][10] [BAT_HOUR][2016][01][d1][h21][10] [BAT_HOUR][2016][01][d1][h22][10] [BAT_HOUR][2016][01][d1][h23][10] - we don't need to state anything about hours on the 2nd of Jan since the day array is determinant [BAT_HOUR][2016][01][d3][h01][10] [BAT_HOUR][2016][01][d3][h02][10] [BAT_HOUR][2016][01][d3][h03][10] [BAT_HOUR][2016][01][d3][h04][10] [BAT_HOUR][2016][01][d3][h05][10] [BAT_HOUR][2016][01][d3][h06][10] [BAT_HOUR][2016][01][d3][h07][10] [BAT_HOUR][2016][01][d3][h08][10] [BAT_HOUR][2016][01][d3][h09][10] [BAT_HOUR][2016][01][d3][h10][10] [BAT_HOUR][2016][01][d3][h11][10] [BAT_HOUR][2016][01][d3][h12][-1] - The last hour of the event ends at the 10th minute so will need to minute array [BAT_MINUTE][2016][01][d1][h12][m00][10] - Minutes, which is the maximum granularity, are always determinant [BAT_MINUTE][2016][01][d1][h12][m01][10] [BAT_MINUTE][2016][01][d1][h12][m02][10] [BAT_MINUTE][2016][01][d1][h12][m03][10] [BAT_MINUTE][2016][01][d1][h12][m04][10] [BAT_MINUTE][2016][01][d1][h12][m05][10] [BAT_MINUTE][2016][01][d1][h12][m06][10] [BAT_MINUTE][2016][01][d1][h12][m07][10] [BAT_MINUTE][2016][01][d1][h12][m08][10] [BAT_MINUTE][2016][01][d1][h12][m09][10] [BAT_MINUTE][2016][01][d1][h12][m10][10] [BAT_MINUTE][2016][01][d3][h12][m00][10] [BAT_MINUTE][2016][01][d3][h12][m01][10] [BAT_MINUTE][2016][01][d3][h12][m02][10] [BAT_MINUTE][2016][01][d3][h12][m03][10] [BAT_MINUTE][2016][01][d3][h12][m04][10] [BAT_MINUTE][2016][01][d3][h12][m05][10] [BAT_MINUTE][2016][01][d3][h12][m06][10] [BAT_MINUTE][2016][01][d3][h12][m07][10] [BAT_MINUTE][2016][01][d3][h12][m08][10] [BAT_MINUTE][2016][01][d3][h12][m09][10] [BAT_MINUTE][2016][01][d3][h12][m10][10] Class EventItemizer
Example #1
0
 /**
  * Transforms the event in a breakdown of days, hours and minutes with associated states.
  *
  * @param EventItemizer $itemizer
  * @return array
  */
 public function itemize($itemizer)
 {
     $itemized = $itemizer->itemizeEvent();
     return $itemized;
 }