278 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			278 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php | ||
|  | /** | ||
|  |  * PHPExcel | ||
|  |  * | ||
|  |  * Copyright (c) 2006 - 2010 PHPExcel | ||
|  |  * | ||
|  |  * This library is free software; you can redistribute it and/or | ||
|  |  * modify it under the terms of the GNU Lesser General Public | ||
|  |  * License as published by the Free Software Foundation; either | ||
|  |  * version 2.1 of the License, or (at your option) any later version. | ||
|  |  * | ||
|  |  * This library is distributed in the hope that it will be useful, | ||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||
|  |  * Lesser General Public License for more details. | ||
|  |  * | ||
|  |  * You should have received a copy of the GNU Lesser General Public | ||
|  |  * License along with this library; if not, write to the Free Software | ||
|  |  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA | ||
|  |  * | ||
|  |  * @category   PHPExcel | ||
|  |  * @package    PHPExcel_Style | ||
|  |  * @copyright  Copyright (c) 2006 - 2010 PHPExcel (http://www.codeplex.com/PHPExcel) | ||
|  |  * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL | ||
|  |  * @version    ##VERSION##, ##DATE##
 | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * PHPExcel_Style_Conditional | ||
|  |  * | ||
|  |  * @category   PHPExcel | ||
|  |  * @package    PHPExcel_Style | ||
|  |  * @copyright  Copyright (c) 2006 - 2010 PHPExcel (http://www.codeplex.com/PHPExcel) | ||
|  |  */ | ||
|  | class PHPExcel_Style_Conditional implements PHPExcel_IComparable | ||
|  | { | ||
|  | 	/* Condition types */ | ||
|  | 	const CONDITION_NONE					= 'none'; | ||
|  | 	const CONDITION_CELLIS					= 'cellIs'; | ||
|  | 	const CONDITION_CONTAINSTEXT			= 'containsText'; | ||
|  | 	const CONDITION_EXPRESSION 				= 'expression'; | ||
|  | 
 | ||
|  | 	/* Operator types */ | ||
|  | 	const OPERATOR_NONE						= ''; | ||
|  | 	const OPERATOR_BEGINSWITH				= 'beginsWith'; | ||
|  | 	const OPERATOR_ENDSWITH					= 'endsWith'; | ||
|  | 	const OPERATOR_EQUAL					= 'equal'; | ||
|  | 	const OPERATOR_GREATERTHAN				= 'greaterThan'; | ||
|  | 	const OPERATOR_GREATERTHANOREQUAL		= 'greaterThanOrEqual'; | ||
|  | 	const OPERATOR_LESSTHAN					= 'lessThan'; | ||
|  | 	const OPERATOR_LESSTHANOREQUAL			= 'lessThanOrEqual'; | ||
|  | 	const OPERATOR_NOTEQUAL					= 'notEqual'; | ||
|  | 	const OPERATOR_CONTAINSTEXT				= 'containsText'; | ||
|  | 	const OPERATOR_NOTCONTAINS				= 'notContains'; | ||
|  | 	const OPERATOR_BETWEEN					= 'between'; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Condition type | ||
|  | 	 * | ||
|  | 	 * @var int | ||
|  | 	 */ | ||
|  | 	private $_conditionType; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Operator type | ||
|  | 	 * | ||
|  | 	 * @var int | ||
|  | 	 */ | ||
|  | 	private $_operatorType; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Text | ||
|  | 	 * | ||
|  | 	 * @var string | ||
|  | 	 */ | ||
|  | 	private $_text; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Condition | ||
|  | 	 * | ||
|  | 	 * @var string[] | ||
|  | 	 */ | ||
|  | 	private $_condition = array(); | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Style | ||
|  | 	 * | ||
|  | 	 * @var PHPExcel_Style | ||
|  | 	 */ | ||
|  | 	private $_style; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Create a new PHPExcel_Style_Conditional | ||
|  |      */ | ||
|  |     public function __construct() | ||
|  |     { | ||
|  |     	// Initialise values
 | ||
|  |     	$this->_conditionType		= PHPExcel_Style_Conditional::CONDITION_NONE; | ||
|  |     	$this->_operatorType		= PHPExcel_Style_Conditional::OPERATOR_NONE; | ||
|  |     	$this->_text    			= null; | ||
|  |     	$this->_condition			= array(); | ||
|  |     	$this->_style				= new PHPExcel_Style(); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Get Condition type | ||
|  |      * | ||
|  |      * @return string | ||
|  |      */ | ||
|  |     public function getConditionType() { | ||
|  |     	return $this->_conditionType; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Set Condition type | ||
|  |      * | ||
|  |      * @param string $pValue	PHPExcel_Style_Conditional condition type | ||
|  |      * @return PHPExcel_Style_Conditional | ||
|  |      */ | ||
|  |     public function setConditionType($pValue = PHPExcel_Style_Conditional::CONDITION_NONE) { | ||
|  |     	$this->_conditionType = $pValue; | ||
|  |     	return $this; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Get Operator type | ||
|  |      * | ||
|  |      * @return string | ||
|  |      */ | ||
|  |     public function getOperatorType() { | ||
|  |     	return $this->_operatorType; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Set Operator type | ||
|  |      * | ||
|  |      * @param string $pValue	PHPExcel_Style_Conditional operator type | ||
|  |      * @return PHPExcel_Style_Conditional | ||
|  |      */ | ||
|  |     public function setOperatorType($pValue = PHPExcel_Style_Conditional::OPERATOR_NONE) { | ||
|  |     	$this->_operatorType = $pValue; | ||
|  |     	return $this; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Get text | ||
|  |      * | ||
|  |      * @return string | ||
|  |      */ | ||
|  |     public function getText() { | ||
|  |         return $this->_text; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Set text | ||
|  |      * | ||
|  |      * @param string $value | ||
|  |      * @return PHPExcel_Style_Conditional | ||
|  |      */ | ||
|  |     public function setText($value = null) { | ||
|  |            $this->_text = $value; | ||
|  |            return $this; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Get Condition | ||
|  |      * | ||
|  |      * @deprecated Deprecated, use getConditions instead | ||
|  |      * @return string | ||
|  |      */ | ||
|  |     public function getCondition() { | ||
|  |     	if (isset($this->_condition[0])) { | ||
|  |     		return $this->_condition[0]; | ||
|  |     	} | ||
|  | 
 | ||
|  |     	return ''; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Set Condition | ||
|  |      * | ||
|  |      * @deprecated Deprecated, use setConditions instead | ||
|  |      * @param string $pValue	Condition | ||
|  |      * @return PHPExcel_Style_Conditional | ||
|  |      */ | ||
|  |     public function setCondition($pValue = '') { | ||
|  |     	if (!is_array($pValue)) | ||
|  |     		$pValue = array($pValue); | ||
|  | 
 | ||
|  |     	return $this->setConditions($pValue); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Get Conditions | ||
|  |      * | ||
|  |      * @return string[] | ||
|  |      */ | ||
|  |     public function getConditions() { | ||
|  |     	return $this->_condition; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Set Conditions | ||
|  |      * | ||
|  |      * @param string[] $pValue	Condition | ||
|  |      * @return PHPExcel_Style_Conditional | ||
|  |      */ | ||
|  |     public function setConditions($pValue) { | ||
|  |     	if (!is_array($pValue)) | ||
|  |     		$pValue = array($pValue); | ||
|  | 
 | ||
|  |     	$this->_condition = $pValue; | ||
|  |     	return $this; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Add Condition | ||
|  |      * | ||
|  |      * @param string $pValue	Condition | ||
|  |      * @return PHPExcel_Style_Conditional | ||
|  |      */ | ||
|  |     public function addCondition($pValue = '') { | ||
|  |     	$this->_condition[] = $pValue; | ||
|  |     	return $this; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Get Style | ||
|  |      * | ||
|  |      * @return PHPExcel_Style | ||
|  |      */ | ||
|  |     public function getStyle() { | ||
|  |     	return $this->_style; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Set Style | ||
|  |      * | ||
|  |      * @param 	PHPExcel_Style $pValue | ||
|  |      * @throws 	Exception | ||
|  |      * @return PHPExcel_Style_Conditional | ||
|  |      */ | ||
|  |     public function setStyle(PHPExcel_Style $pValue = null) { | ||
|  |    		$this->_style = $pValue; | ||
|  |    		return $this; | ||
|  |     } | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Get hash code | ||
|  | 	 * | ||
|  | 	 * @return string	Hash code | ||
|  | 	 */ | ||
|  | 	public function getHashCode() { | ||
|  |     	return md5( | ||
|  |     		  $this->_conditionType | ||
|  |     		. $this->_operatorType | ||
|  |     		. implode(';', $this->_condition) | ||
|  |     		. $this->_style->getHashCode() | ||
|  |     		. __CLASS__ | ||
|  |     	); | ||
|  |     } | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Implement PHP __clone to create a deep clone, not just a shallow copy. | ||
|  | 	 */ | ||
|  | 	public function __clone() { | ||
|  | 		$vars = get_object_vars($this); | ||
|  | 		foreach ($vars as $key => $value) { | ||
|  | 			if (is_object($value)) { | ||
|  | 				$this->$key = clone $value; | ||
|  | 			} else { | ||
|  | 				$this->$key = $value; | ||
|  | 			} | ||
|  | 		} | ||
|  | 	} | ||
|  | } |