2 namespace Workspace\UseCase;
7 * Base condition set container.
10 abstract class ConditionBase
17 const BASE_AND = 'and';
26 protected $conditionSet = array();
31 * Retrieve condition set.
34 public function getPrerequisites()
37 'Operator' => $this->base,
38 'Conditions' => $this->conditionSet
43 * Add sub condition(s).
44 * @param \Workspace\UseCase\ConditionBase $condition
45 * @return \Workspace\UseCase\ConditionBase
47 public function addSubGroup(\Workspace\UseCase\ConditionBase $condition)
49 $this->conditionSet[] = $condition->getPrerequisites();
55 * @param string $input
56 * @param unknown $value
57 * @return \Workspace\UseCase\ConditionBase
59 public function equal($input, $value)
61 return $this->addCondition('=', $input, $value);
66 * @param string $input
67 * @param unknown $value
68 * @return \Workspace\UseCase\ConditionBase
70 public function notEqual($input, $value)
72 return $this->addCondition('!=', $input, $value);
77 * @param string $input
78 * @param unknown $value
79 * @return \Workspace\UseCase\ConditionBase
81 public function smallerThan($input, $value)
83 return $this->addCondition('<', $input, $value);
88 * @param string $input
89 * @param unknown $value
90 * @return \Workspace\UseCase\ConditionBase
92 public function greaterThan($input, $value)
94 return $this->addCondition('>', $input, $value);
98 * Is one of the specified values.
99 * @param string $input
100 * @param array $value
101 * @return \Workspace\UseCase\ConditionBase
103 public function oneOf($input, array $value)
105 return $this->addCondition('IN', $input, $value);
109 * Not one of the specified values.
110 * @param string $input
111 * @param array $value
112 * @return \Workspace\UseCase\ConditionBase
114 public function notOneOf($input, array $value)
116 return $this->addCondition('NOT IN', $input, $value);
122 * @param string $input
123 * @param unknown $value
124 * @return \Workspace\UseCase\ConditionBase
126 protected function addCondition($op, $input, $value)
128 $this->conditionSet[] = array(