Add analytics
[bus.git] / busui / owa / modules / base / classes / validator.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<?php
 
//
// Open Web Analytics - An Open Source Web Analytics Framework
//
// Copyright 2006 Peter Adams. All rights reserved.
//
// Licensed under GPL v2.0 http://www.gnu.org/copyleft/gpl.html
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// $Id$
//
 
/**
 * Data Validator Class
 * 
 * @author      Peter Adams <peter@openwebanalytics.com>
 * @copyright   Copyright &copy; 2006 Peter Adams <peter@openwebanalytics.com>
 * @license     http://www.gnu.org/copyleft/gpl.html GPL v2.0
 * @category    owa
 * @package     owa
 * @version             $Revision$            
 * @since               owa 1.0.0
 */
 
 class owa_validator extends owa_base {
        
        /**
         * Flag for whether or not a validation run produces errors
         * 
         * @var boolean
         */
        var $hasErrors;
        
        /**
         * Error Msgs produced by Validations
         * 
         * @var array
         */
        var $errorMsgs;
        
        /**
         * Validations to be performed in next validation run
         * 
         * @var array
         */
        var $validations;
        
        function __construct() {
        
                return parent::__construct();
        }
        
        /**
         * Adds a validation to be performed in next run
         * 
         * @param string        $name           the name to be given to the validation and its results
         * @param unknown       $value          the data value that is to be validated
         * @param string        $validation the name of the validation to run
         * @param array         $conf           configuration array for the object being created
         */
        function addValidation($name, $value, $validation, $conf) {
                                
                // Construct validatation obj
                $obj = $this->validationFactory($validation);
                $obj->setValues($value);
                $obj->setConfigArray($conf);
                
                $this->validations[] = array('name' => $name, 'obj' => $obj);
 
                return;
                
        }
        
        function setValidation($name, $obj) {
                
                $this->validations[] = array('name' => $name, 'obj' => $obj);
                return;
        }
        
        /**
         * Factory method for producing validation objects
         * 
         * @return Object
         */
        function validationFactory($class_file) {
                
                return owa_coreAPI::validationFactory($class_file, $conf);              
        }
        
        /**
         * Performs a validation run
         * 
         */
        function doValidations() {
                
                foreach ($this->validations as $k) {
                        
                        $k['obj']->validate();
                        
                        if ($k['obj']->hasError === true) {
                                        
                                $this->hasErrors = true;
                                $this->errorMsgs[$k['name']] = $k['obj']->getErrorMsg();
                                
                                if ($k['obj']->conf['stopOnError'] === true) {
                                        break;
                                }
                                
                        }
                }
        }
        
        /**
         * Check to see if the validation run was successful.
         * 
         * @return boolean
         */
        function isValid() {
                
                if ($this->hasErrors == true):
                        return false;
                else:
                        return true;
                endif;
        }
        
        /**
         * Accessor method for retrieving the error msgs produced by a validation run
         * 
         * @return array
         */
        function getErrorMsgs() {
                
                return $this->errorMsgs;
        }
        
        
 }
 
?>