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: