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