1: <?php
2: /**
3: * Ingo_Storage_Rule:: is the base class for the various action objects
4: * used by Ingo_Storage.
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 Michael Slusarz <slusarz@horde.org>
10: * @package Ingo
11: */
12: class Ingo_Storage_Rule
13: {
14: /**
15: * The object type.
16: *
17: * @var integer
18: */
19: protected $_obtype;
20:
21: /**
22: * Whether the rule has been saved (if being saved separately).
23: *
24: * @var boolean
25: */
26: protected $_saved = false;
27:
28: /**
29: * Returns the object rule type.
30: *
31: * @return integer The object rule type.
32: */
33: public function obType()
34: {
35: return $this->_obtype;
36: }
37:
38: /**
39: * Marks the rule as saved or unsaved.
40: *
41: * @param boolean $data Whether the rule has been saved.
42: */
43: public function setSaved($data)
44: {
45: $this->_saved = $data;
46: }
47:
48: /**
49: * Returns whether the rule has been saved.
50: *
51: * @return boolean True if the rule has been saved.
52: */
53: public function isSaved()
54: {
55: return $this->_saved;
56: }
57:
58: /**
59: * Function to manage an internal address list.
60: *
61: * @param mixed $data The incoming data (array or string).
62: * @param boolean $sort Sort the list?
63: *
64: * @return array The address list.
65: */
66: protected function _addressList($data, $sort)
67: {
68: $output = array();
69:
70: if (is_array($data)) {
71: $output = $data;
72: } else {
73: $data = trim($data);
74: $output = (empty($data)) ? array() : preg_split("/\s+/", $data);
75: }
76:
77: return $sort
78: ? Horde_Array::prepareAddressList($output)
79: : $output;
80: }
81:
82: }
83: