summaryrefslogtreecommitdiffstats
path: root/vendor/simshaun/recurr/src/Recurr/Transformer/ArrayTransformerConfig.php
blob: 68350b06747dcd4cb7a51970592e353bbe229687 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php

/*
 * Copyright 2014 Shaun Simmons
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Recurr\Transformer;

class ArrayTransformerConfig
{
    /** @var int */
    protected $virtualLimit = 732;

    protected $lastDayOfMonthFix = false;

    /**
     * Set the virtual limit imposed upon infinitely recurring events.
     *
     * @param int $virtualLimit The limit
     *
     * @return $this
     */
    public function setVirtualLimit($virtualLimit)
    {
        $this->virtualLimit = (int) $virtualLimit;

        return $this;
    }

    /**
     * Get the virtual limit imposed upon infinitely recurring events.
     *
     * @return int
     */
    public function getVirtualLimit()
    {
        return $this->virtualLimit;
    }

    /**
     * By default, January 30 + 1 month results in March 30 because February doesn't have 30 days.
     *
     * Enabling this fix tells Recurr that +1 month means "last day of next month".
     */
    public function enableLastDayOfMonthFix()
    {
        $this->lastDayOfMonthFix = true;
    }

    public function disableLastDayOfMonthFix()
    {
        $this->lastDayOfMonthFix = false;
    }

    /**
     * @return boolean
     */
    public function isLastDayOfMonthFixEnabled()
    {
        return $this->lastDayOfMonthFix;
    }
}