source: sourcecode/application/libraries/PHPExcel/Style/Conditional.php @ 1

Last change on this file since 1 was 1, checked in by dungnv, 11 years ago
File size: 6.2 KB
Line 
1<?php
2/**
3 * PHPExcel
4 *
5 * Copyright (c) 2006 - 2014 PHPExcel
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
20 *
21 * @category   PHPExcel
22 * @package    PHPExcel_Style
23 * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24 * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL
25 * @version    1.8.0, 2014-03-02
26 */
27
28
29/**
30 * PHPExcel_Style_Conditional
31 *
32 * @category   PHPExcel
33 * @package    PHPExcel_Style
34 * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35 */
36class PHPExcel_Style_Conditional implements PHPExcel_IComparable
37{
38        /* Condition types */
39        const CONDITION_NONE                                    = 'none';
40        const CONDITION_CELLIS                                  = 'cellIs';
41        const CONDITION_CONTAINSTEXT                    = 'containsText';
42        const CONDITION_EXPRESSION                              = 'expression';
43
44        /* Operator types */
45        const OPERATOR_NONE                                             = '';
46        const OPERATOR_BEGINSWITH                               = 'beginsWith';
47        const OPERATOR_ENDSWITH                                 = 'endsWith';
48        const OPERATOR_EQUAL                                    = 'equal';
49        const OPERATOR_GREATERTHAN                              = 'greaterThan';
50        const OPERATOR_GREATERTHANOREQUAL               = 'greaterThanOrEqual';
51        const OPERATOR_LESSTHAN                                 = 'lessThan';
52        const OPERATOR_LESSTHANOREQUAL                  = 'lessThanOrEqual';
53        const OPERATOR_NOTEQUAL                                 = 'notEqual';
54        const OPERATOR_CONTAINSTEXT                             = 'containsText';
55        const OPERATOR_NOTCONTAINS                              = 'notContains';
56        const OPERATOR_BETWEEN                                  = 'between';
57
58        /**
59         * Condition type
60         *
61         * @var int
62         */
63        private $_conditionType;
64
65        /**
66         * Operator type
67         *
68         * @var int
69         */
70        private $_operatorType;
71
72        /**
73         * Text
74         *
75         * @var string
76         */
77        private $_text;
78
79        /**
80         * Condition
81         *
82         * @var string[]
83         */
84        private $_condition = array();
85
86        /**
87         * Style
88         *
89         * @var PHPExcel_Style
90         */
91        private $_style;
92
93    /**
94     * Create a new PHPExcel_Style_Conditional
95     */
96    public function __construct()
97    {
98        // Initialise values
99        $this->_conditionType           = PHPExcel_Style_Conditional::CONDITION_NONE;
100        $this->_operatorType            = PHPExcel_Style_Conditional::OPERATOR_NONE;
101        $this->_text                            = null;
102        $this->_condition                       = array();
103        $this->_style                           = new PHPExcel_Style(FALSE, TRUE);
104    }
105
106    /**
107     * Get Condition type
108     *
109     * @return string
110     */
111    public function getConditionType() {
112        return $this->_conditionType;
113    }
114
115    /**
116     * Set Condition type
117     *
118     * @param string $pValue    PHPExcel_Style_Conditional condition type
119     * @return PHPExcel_Style_Conditional
120     */
121    public function setConditionType($pValue = PHPExcel_Style_Conditional::CONDITION_NONE) {
122        $this->_conditionType = $pValue;
123        return $this;
124    }
125
126    /**
127     * Get Operator type
128     *
129     * @return string
130     */
131    public function getOperatorType() {
132        return $this->_operatorType;
133    }
134
135    /**
136     * Set Operator type
137     *
138     * @param string $pValue    PHPExcel_Style_Conditional operator type
139     * @return PHPExcel_Style_Conditional
140     */
141    public function setOperatorType($pValue = PHPExcel_Style_Conditional::OPERATOR_NONE) {
142        $this->_operatorType = $pValue;
143        return $this;
144    }
145
146    /**
147     * Get text
148     *
149     * @return string
150     */
151    public function getText() {
152        return $this->_text;
153    }
154
155    /**
156     * Set text
157     *
158     * @param string $value
159     * @return PHPExcel_Style_Conditional
160     */
161    public function setText($value = null) {
162           $this->_text = $value;
163           return $this;
164    }
165
166    /**
167     * Get Condition
168     *
169     * @deprecated Deprecated, use getConditions instead
170     * @return string
171     */
172    public function getCondition() {
173        if (isset($this->_condition[0])) {
174                return $this->_condition[0];
175        }
176
177        return '';
178    }
179
180    /**
181     * Set Condition
182     *
183     * @deprecated Deprecated, use setConditions instead
184     * @param string $pValue    Condition
185     * @return PHPExcel_Style_Conditional
186     */
187    public function setCondition($pValue = '') {
188        if (!is_array($pValue))
189                $pValue = array($pValue);
190
191        return $this->setConditions($pValue);
192    }
193
194    /**
195     * Get Conditions
196     *
197     * @return string[]
198     */
199    public function getConditions() {
200        return $this->_condition;
201    }
202
203    /**
204     * Set Conditions
205     *
206     * @param string[] $pValue  Condition
207     * @return PHPExcel_Style_Conditional
208     */
209    public function setConditions($pValue) {
210        if (!is_array($pValue))
211                $pValue = array($pValue);
212
213        $this->_condition = $pValue;
214        return $this;
215    }
216
217    /**
218     * Add Condition
219     *
220     * @param string $pValue    Condition
221     * @return PHPExcel_Style_Conditional
222     */
223    public function addCondition($pValue = '') {
224        $this->_condition[] = $pValue;
225        return $this;
226    }
227
228    /**
229     * Get Style
230     *
231     * @return PHPExcel_Style
232     */
233    public function getStyle() {
234        return $this->_style;
235    }
236
237    /**
238     * Set Style
239     *
240     * @param   PHPExcel_Style $pValue
241     * @throws  PHPExcel_Exception
242     * @return PHPExcel_Style_Conditional
243     */
244    public function setStyle(PHPExcel_Style $pValue = null) {
245                $this->_style = $pValue;
246                return $this;
247    }
248
249        /**
250         * Get hash code
251         *
252         * @return string       Hash code
253         */
254        public function getHashCode() {
255        return md5(
256                  $this->_conditionType
257                . $this->_operatorType
258                . implode(';', $this->_condition)
259                . $this->_style->getHashCode()
260                . __CLASS__
261        );
262    }
263
264        /**
265         * Implement PHP __clone to create a deep clone, not just a shallow copy.
266         */
267        public function __clone() {
268                $vars = get_object_vars($this);
269                foreach ($vars as $key => $value) {
270                        if (is_object($value)) {
271                                $this->$key = clone $value;
272                        } else {
273                                $this->$key = $value;
274                        }
275                }
276        }
277}
Note: See TracBrowser for help on using the repository browser.