Completed
Push — master ( 587f5e...7e0186 )
by Jean-Christophe
04:40
created

Validator   A

Complexity

Total Complexity 12

Size/Duplication

Total Lines 74
Duplicated Lines 0 %

Test Coverage

Coverage 75%

Importance

Changes 0
Metric Value
wmc 12
eloc 28
dl 0
loc 74
ccs 24
cts 32
cp 0.75
rs 10
c 0
b 0
f 0

8 Methods

Rating   Name   Duplication   Size   Complexity  
A setMember() 0 2 1
A getParameters() 0 2 1
A getMember() 0 2 1
A validate_() 0 6 2
A _getMessage() 0 7 2
A setValidationParameters() 0 5 1
A mergeMessages() 0 5 2
A setParams() 0 3 2
1
<?php
2
3
namespace Ubiquity\contents\validation\validators;
4
5
6
/**
7
 * Abstract class for validators
8
 * @author jcheron <[email protected]>
9
 * @version 1.0.0
10
 */
11
abstract class Validator implements ValidatorInterface{
12
	protected $modifiedMessage;
13
	protected $message;
14
	protected $member;
15
	protected $value;
16
	protected $severity;
17
18
	
19
	/**
20
	 * @param mixed $value
21
	 * @return \Ubiquity\contents\validation\validators\ConstraintViolation|boolean
22
	 */
23 1
	public function validate_($value){
24 1
		$this->value=$value;
25 1
		if(!$this->validate($value)){
26 1
			return new ConstraintViolation($this->_getMessage(), $value, $this->member, get_class($this),$this->severity);
27
		}
28 1
		return true;
29
	}
30
	
31 1
	public function setValidationParameters($member,$params,$severity='warning',$message=null){
32 1
		$this->setParams($params);
33 1
		$this->member=$member;
34 1
		$this->modifiedMessage=$message;
35 1
		$this->severity=$severity;
36 1
	}
37
	
38 1
	protected function setParams(array $params){
39 1
		foreach ($params as $member=>$value){
40 1
			$this->$member=$value;
41
		}
42 1
	}
43
	
44
	/**
45
	 * @return mixed
46
	 */
47
	public function getMember() {
48
		return $this->member;
49
	}
50
51
	/**
52
	 * @param mixed $member
53
	 */
54
	public function setMember($member) {
55
		$this->member = $member;
56
	}
57
	
58
	/**
59
	 * {@inheritDoc}
60
	 * @see \Ubiquity\contents\validation\validators\ValidatorInterface::getParameters()
61
	 */
62
	public function getParameters(): array {
63
		return [];
64
		
65
	}
66
	
67
	/**
68
	 * @return array|string
69
	 */
70 1
	protected function mergeMessages(){
71 1
		if(!isset($this->modifiedMessage)){
72 1
			return $this->message;
73
		}else{
74
			return $this->modifiedMessage;
75
		}
76
	}
77
	
78 1
	protected function _getMessage(){
79 1
		$parameters=$this->getParameters();
80 1
		$message=$this->mergeMessages();
81 1
		foreach ($parameters as $param){
82 1
			$message=str_replace("{".$param."}", $this->$param, $message);
83
		}
84 1
		return $message;
85
	}
86
87
}
88
89