Git Repository Public Repository

namibia

URLs

Copy to Clipboard
 
1074a2d61ec9d93a0ac7e0181875a2202b1225c4
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
<?php
namespace Workspace\UseCase;



/**
 * Base condition set container.
 * @author andre.fourie
 */
abstract class ConditionBase
{

	/**
	 * Usefull constants
	 */
	const BASE_OR  = 'or';
	const BASE_AND = 'and';

	/**
	 * @var string
	 */
	protected $base;
	/**
	 * @var array
	 */
	protected $conditionSet = array();



	/**
	 * Retrieve condition set.
	 * @return array
	 */
	public function getPrerequisites()
	{
		return array(
				'Operator' => $this->base,
				'Conditions' => $this->conditionSet
		);
	}

	/**
	 * Add sub condition(s).
	 * @param \Workspace\UseCase\ConditionBase $condition
	 * @return \Workspace\UseCase\ConditionBase
	 */
	public function addSubGroup(\Workspace\UseCase\ConditionBase $condition)
	{
		$this->conditionSet[] = $condition->getPrerequisites();
		return $this;
	}

	/**
	 * Equals.
	 * @param string $input
	 * @param unknown $value
	 * @return \Workspace\UseCase\ConditionBase
	 */
	public function equal($input, $value)
	{
		return $this->addCondition('=', $input, $value);
	}

	/**
	 * Not equals.
	 * @param string $input
	 * @param unknown $value
	 * @return \Workspace\UseCase\ConditionBase
	 */
	public function notEqual($input, $value)
	{
		return $this->addCondition('!=', $input, $value);
	}

	/**
	 * Smaller than.
	 * @param string $input
	 * @param unknown $value
	 * @return \Workspace\UseCase\ConditionBase
	 */
	public function smallerThan($input, $value)
	{
		return $this->addCondition('<', $input, $value);
	}

	/**
	 * Greater than.
	 * @param string $input
	 * @param unknown $value
	 * @return \Workspace\UseCase\ConditionBase
	 */
	public function greaterThan($input, $value)
	{
		return $this->addCondition('>', $input, $value);
	}

	/**
	 * Is one of the specified values.
	 * @param string $input
	 * @param array $value
	 * @return \Workspace\UseCase\ConditionBase
	 */
	public function oneOf($input, array $value)
	{
		return $this->addCondition('IN', $input, $value);
	}

	/**
	 * Not one of the specified values.
	 * @param string $input
	 * @param array $value
	 * @return \Workspace\UseCase\ConditionBase
	 */
	public function notOneOf($input, array $value)
	{
		return $this->addCondition('NOT IN', $input, $value);
	}

	/**
	 * Add new condition.
	 * @param string $op
	 * @param string $input
	 * @param unknown $value
	 * @return \Workspace\UseCase\ConditionBase
	 */
	protected function addCondition($op, $input, $value)
	{
		$this->conditionSet[] = array(
				'Input' => $input,
				'Operator' => $op,
				'Value' => $value
		);
		return $this;
	}

}

Commits for namibia/module/Workspace/src/Workspace/UseCase/ConditionBase.php

Diff revisions: vs.
Revision Author Commited Message
df0489 ... Mark Fri 14 Oct, 2016 10:01:00 +0000

initial commit