Subversion Repositories eFlore/Applications.cel

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2388 jpm 1
<?php
2
/**
3
 * PHPExcel
4
 *
5
 * Copyright (c) 2006 - 2013 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 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel)
24
 * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
25
 * @version    ##VERSION##, ##DATE##
26
 */
27
 
28
 
29
/**
30
 * PHPExcel_Style_Conditional
31
 *
32
 * @category   PHPExcel
33
 * @package    PHPExcel_Style
34
 * @copyright  Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel)
35
 */
36
class 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
}