PluginProbe
WANotifier for Forms and Actions / 3.1.1
WANotifier for Forms and Actions v3.1.1
3.1.1 3.1.0 3.0.4 2.7.10 2.7.11 2.7.12 2.7.13 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 3.0.0 3.0.1 3.0.2 3.0.3 trunk 0.1.0 0.1.1 1.0.0 1.0.1 1.0.2 All 67 releases
notifier / libraries / action-scheduler / lib / cron-expression / CronExpression_FieldFactory.php

CronExpression_FieldFactory.php in WANotifier for Forms and Actions 3.1.1, at libraries/action-scheduler/lib/cron-expression/CronExpression_FieldFactory.php

56 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * CRON field factory implementing a flyweight factory
5 *
6 * @author Michael Dowling <mtdowling@gmail.com>
7 * @link http://en.wikipedia.org/wiki/Cron
8 */
9 class CronExpression_FieldFactory
10 {
11 /**
12 * @var array Cache of instantiated fields
13 */
14 private $fields = array();
15
16 /**
17 * Get an instance of a field object for a cron expression position
18 *
19 * @param int $position CRON expression position value to retrieve
20 *
21 * @return CronExpression_FieldInterface
22 * @throws InvalidArgumentException if a position is not valid
23 */
24 public function getField($position)
25 {
26 if (!isset($this->fields[$position])) {
27 switch ($position) {
28 case 0:
29 $this->fields[$position] = new CronExpression_MinutesField();
30 break;
31 case 1:
32 $this->fields[$position] = new CronExpression_HoursField();
33 break;
34 case 2:
35 $this->fields[$position] = new CronExpression_DayOfMonthField();
36 break;
37 case 3:
38 $this->fields[$position] = new CronExpression_MonthField();
39 break;
40 case 4:
41 $this->fields[$position] = new CronExpression_DayOfWeekField();
42 break;
43 case 5:
44 $this->fields[$position] = new CronExpression_YearField();
45 break;
46 default:
47 throw new InvalidArgumentException(
48 $position . ' is not a valid position'
49 );
50 }
51 }
52
53 return $this->fields[$position];
54 }
55 }
56