1: <?php
 2: /**
 3:  * The Ingo_Script_Sieve_Test_Not class represents the inverse of a given
 4:  * test.
 5:  *
 6:  * See the enclosed file LICENSE for license information (ASL).  If you
 7:  * did not receive this file, see http://www.horde.org/licenses/apache.
 8:  *
 9:  * @author  Mike Cochrane <mike@graftonhall.co.nz>
10:  * @package Ingo
11:  */
12: class Ingo_Script_Sieve_Test_Not extends Ingo_Script_Sieve_Test
13: {
14:     /**
15:      */
16:     protected $_test = array();
17: 
18:     /**
19:      * Constructor.
20:      *
21:      * @param Ingo_Script_Sieve_Test $test  An Ingo_Script_Sieve_Test object.
22:      */
23:     public function __construct($test)
24:     {
25:         $this->_test = $test;
26:     }
27: 
28:     /**
29:      * Checks if the sub-rule is valid.
30:      *
31:      * @return boolean|string  True if this rule is valid, an error message
32:      *                         otherwise.
33:      */
34:     public function check()
35:     {
36:         return $this->_test->check();
37:     }
38: 
39:     /**
40:      * Returns a script snippet representing this rule and any sub-rules.
41:      *
42:      * @return string  A Sieve script snippet.
43:      */
44:     public function toCode()
45:     {
46:         return 'not ' . $this->_test->toCode();
47:     }
48: 
49:     /**
50:      * Returns a list of sieve extensions required for this rule and any
51:      * sub-rules.
52:      *
53:      * @return array  A Sieve extension list.
54:      */
55:     public function requires()
56:     {
57:         return $this->_test->requires();
58:     }
59: 
60: }
61: