Skip to content
...@@ -8,7 +8,8 @@ ...@@ -8,7 +8,8 @@
* Time: 15:15 * Time: 15:15
* @author Thomas Joußen <tjoussen@databay.de> * @author Thomas Joußen <tjoussen@databay.de>
*/ */
class QuestionNotReachable extends \RuntimeException{ class QuestionNotReachable extends \RuntimeException
{
/** /**
* @var int * @var int
......
...@@ -8,7 +8,8 @@ ...@@ -8,7 +8,8 @@
* Time: 15:15 * Time: 15:15
* @author Thomas Joußen <tjoussen@databay.de> * @author Thomas Joußen <tjoussen@databay.de>
*/ */
class UnableToParseCondition extends \RuntimeException{ class UnableToParseCondition extends \RuntimeException
{
/** /**
* @var string * @var string
......
...@@ -8,7 +8,8 @@ ...@@ -8,7 +8,8 @@
* Time: 15:15 * Time: 15:15
* @author Thomas Joußen <tjoussen@databay.de> * @author Thomas Joußen <tjoussen@databay.de>
*/ */
class UnsupportedExpression extends \RuntimeException{ class UnsupportedExpression extends \RuntimeException
{
/** /**
* @var string * @var string
......
...@@ -8,7 +8,8 @@ ...@@ -8,7 +8,8 @@
* Time: 15:15 * Time: 15:15
* @author Thomas Joußen <tjoussen@databay.de> * @author Thomas Joußen <tjoussen@databay.de>
*/ */
class UnsupportedOperation extends \RuntimeException{ class UnsupportedOperation extends \RuntimeException
{
/** /**
* @var string * @var string
......
...@@ -10,7 +10,8 @@ include_once 'ExpressionInterface.php'; ...@@ -10,7 +10,8 @@ include_once 'ExpressionInterface.php';
* Time: 15:42 * Time: 15:42
* @author Thomas Joußen <tjoussen@databay.de> * @author Thomas Joußen <tjoussen@databay.de>
*/ */
abstract class AbstractExpression extends AbstractComposite implements ExpressionInterface { abstract class AbstractExpression extends AbstractComposite implements ExpressionInterface
{
/** /**
......
...@@ -12,7 +12,6 @@ include_once "SolutionExpressionInterface.php"; ...@@ -12,7 +12,6 @@ include_once "SolutionExpressionInterface.php";
*/ */
class EmptyAnswerExpression extends AbstractExpression implements SolutionExpressionInterface class EmptyAnswerExpression extends AbstractExpression implements SolutionExpressionInterface
{ {
public static $pattern = '/(\?)/'; public static $pattern = '/(\?)/';
public static $identifier = "?"; public static $identifier = "?";
...@@ -54,10 +53,8 @@ class EmptyAnswerExpression extends AbstractExpression implements SolutionExpres ...@@ -54,10 +53,8 @@ class EmptyAnswerExpression extends AbstractExpression implements SolutionExpres
*/ */
public function checkResult($result, $comperator, $index = null) public function checkResult($result, $comperator, $index = null)
{ {
if($index == null) if ($index == null) {
{ switch ($comperator) {
switch($comperator)
{
case "=": case "=":
return !$result->hasSolutions(); return !$result->hasSolutions();
break; break;
...@@ -67,12 +64,9 @@ class EmptyAnswerExpression extends AbstractExpression implements SolutionExpres ...@@ -67,12 +64,9 @@ class EmptyAnswerExpression extends AbstractExpression implements SolutionExpres
default: default:
return false; return false;
} }
} } else {
else
{
$solution = $result->getSolutionForKey($index); $solution = $result->getSolutionForKey($index);
switch($comperator) switch ($comperator) {
{
case "=": case "=":
return $solution == null; return $solution == null;
break; break;
...@@ -83,7 +77,6 @@ class EmptyAnswerExpression extends AbstractExpression implements SolutionExpres ...@@ -83,7 +77,6 @@ class EmptyAnswerExpression extends AbstractExpression implements SolutionExpres
return false; return false;
} }
} }
} }
/** /**
...@@ -98,4 +91,3 @@ class EmptyAnswerExpression extends AbstractExpression implements SolutionExpres ...@@ -98,4 +91,3 @@ class EmptyAnswerExpression extends AbstractExpression implements SolutionExpres
$this->matched = true; $this->matched = true;
} }
} }
\ No newline at end of file
...@@ -53,8 +53,7 @@ class ExclusiveResultExpression extends AbstractExpression implements SolutionEx ...@@ -53,8 +53,7 @@ class ExclusiveResultExpression extends AbstractExpression implements SolutionEx
{ {
$this->exclusive = array(); $this->exclusive = array();
foreach($matches[0] as $match) foreach ($matches[0] as $match) {
{
$this->exclusive[] = $match; $this->exclusive[] = $match;
} }
} }
...@@ -99,8 +98,7 @@ class ExclusiveResultExpression extends AbstractExpression implements SolutionEx ...@@ -99,8 +98,7 @@ class ExclusiveResultExpression extends AbstractExpression implements SolutionEx
sort($values); sort($values);
sort($exclusive); sort($exclusive);
switch($comperator) switch ($comperator) {
{
case "=": case "=":
return $values == $exclusive; return $values == $exclusive;
break; break;
......
...@@ -7,7 +7,8 @@ ...@@ -7,7 +7,8 @@
* @author Thomas Joußen <tjoussen@databay.de> * @author Thomas Joußen <tjoussen@databay.de>
*/ */
interface ExpressionInterface { interface ExpressionInterface
{
/** /**
* Get the value of this Expression * Get the value of this Expression
......
...@@ -108,8 +108,7 @@ class MatchingResultExpression extends AbstractExpression implements SolutionExp ...@@ -108,8 +108,7 @@ class MatchingResultExpression extends AbstractExpression implements SolutionExp
{ {
$solutions = $result->getSolutions(); $solutions = $result->getSolutions();
$isTrue = false; $isTrue = false;
foreach($solutions as $solution) foreach ($solutions as $solution) {
{
$isTrue = $isTrue || $this->compare($comperator, $solution["key"], $solution["value"]); $isTrue = $isTrue || $this->compare($comperator, $solution["key"], $solution["value"]);
} }
return $isTrue; return $isTrue;
...@@ -124,8 +123,7 @@ class MatchingResultExpression extends AbstractExpression implements SolutionExp ...@@ -124,8 +123,7 @@ class MatchingResultExpression extends AbstractExpression implements SolutionExp
*/ */
private function compare($comperator, $left, $right) private function compare($comperator, $left, $right)
{ {
switch($comperator) switch ($comperator) {
{
case "=": case "=":
return $this->getLeftNumericValue() == $left && $this->getRightNumericValue() == $right; return $this->getLeftNumericValue() == $left && $this->getRightNumericValue() == $right;
break; break;
......
...@@ -85,17 +85,13 @@ class NumberOfResultExpression extends AbstractExpression implements SolutionExp ...@@ -85,17 +85,13 @@ class NumberOfResultExpression extends AbstractExpression implements SolutionExp
public function checkResult($result, $comperator, $index = null) public function checkResult($result, $comperator, $index = null)
{ {
$isTrue = false; $isTrue = false;
if($index == null) if ($index == null) {
{
$values = $result->getUserSolutionsByIdentifier("key"); $values = $result->getUserSolutionsByIdentifier("key");
foreach($values as $value) foreach ($values as $value) {
{
$isTrue = $isTrue || $this->compare($comperator, $value); $isTrue = $isTrue || $this->compare($comperator, $value);
} }
} } else {
else
{
$solution = $result->getSolutionForKey($index); $solution = $result->getSolutionForKey($index);
$isTrue = $this->compare($comperator, $solution["value"]); $isTrue = $this->compare($comperator, $solution["value"]);
} }
...@@ -105,8 +101,7 @@ class NumberOfResultExpression extends AbstractExpression implements SolutionExp ...@@ -105,8 +101,7 @@ class NumberOfResultExpression extends AbstractExpression implements SolutionExp
private function compare($comperator, $value) private function compare($comperator, $value)
{ {
switch($comperator) switch ($comperator) {
{
case "=": case "=":
return $value == $this->getNumericValue(); return $value == $this->getNumericValue();
break; break;
......
...@@ -85,17 +85,13 @@ class NumericResultExpression extends AbstractExpression implements SolutionExpr ...@@ -85,17 +85,13 @@ class NumericResultExpression extends AbstractExpression implements SolutionExpr
public function checkResult($result, $comperator, $index = null) public function checkResult($result, $comperator, $index = null)
{ {
$isTrue = false; $isTrue = false;
if($index == null) if ($index == null) {
{
$values = $result->getUserSolutionsByIdentifier("value"); $values = $result->getUserSolutionsByIdentifier("value");
foreach($values as $value) foreach ($values as $value) {
{
$isTrue = $isTrue || $this->compare($comperator, $value); $isTrue = $isTrue || $this->compare($comperator, $value);
} }
} } else {
else
{
$solution = $result->getSolutionForKey($index); $solution = $result->getSolutionForKey($index);
$isTrue = $this->compare($comperator, $solution["value"]); $isTrue = $this->compare($comperator, $solution["value"]);
} }
...@@ -105,8 +101,7 @@ class NumericResultExpression extends AbstractExpression implements SolutionExpr ...@@ -105,8 +101,7 @@ class NumericResultExpression extends AbstractExpression implements SolutionExpr
private function compare($comperator, $value) private function compare($comperator, $value)
{ {
switch($comperator) switch ($comperator) {
{
case "<": case "<":
return $value < $this->getNumericValue(); return $value < $this->getNumericValue();
break; break;
......
...@@ -52,8 +52,7 @@ class OrderingResultExpression extends AbstractExpression implements SolutionExp ...@@ -52,8 +52,7 @@ class OrderingResultExpression extends AbstractExpression implements SolutionExp
{ {
$this->ordering = array(); $this->ordering = array();
foreach($matches[0] as $match) foreach ($matches[0] as $match) {
{
$this->ordering[] = $match; $this->ordering[] = $match;
} }
} }
...@@ -98,8 +97,7 @@ class OrderingResultExpression extends AbstractExpression implements SolutionExp ...@@ -98,8 +97,7 @@ class OrderingResultExpression extends AbstractExpression implements SolutionExp
return $element != null; return $element != null;
}); });
switch($comperator) switch ($comperator) {
{
case "=": case "=":
return $keys == $this->getOrdering(); return $keys == $this->getOrdering();
break; break;
......
...@@ -85,8 +85,7 @@ class PercentageResultExpression extends AbstractExpression implements SolutionE ...@@ -85,8 +85,7 @@ class PercentageResultExpression extends AbstractExpression implements SolutionE
public function checkResult($result, $comperator, $index = null) public function checkResult($result, $comperator, $index = null)
{ {
$percentage = $result->getReachedPercentage(); $percentage = $result->getReachedPercentage();
switch($comperator) switch ($comperator) {
{
case "<": case "<":
return $percentage < $this->getNumericValue(); return $percentage < $this->getNumericValue();
break; break;
......
...@@ -7,8 +7,7 @@ ...@@ -7,8 +7,7 @@
* @author Thomas Joußen <tjoussen@databay.de> * @author Thomas Joußen <tjoussen@databay.de>
*/ */
interface QuestionExpressionInterface { interface QuestionExpressionInterface
{
public function getQuestionIndex(); public function getQuestionIndex();
} }
...@@ -10,7 +10,8 @@ require_once "QuestionExpressionInterface.php"; ...@@ -10,7 +10,8 @@ require_once "QuestionExpressionInterface.php";
* Time: 16:40 * Time: 16:40
* @author Thomas Joußen <tjoussen@databay.de> * @author Thomas Joußen <tjoussen@databay.de>
*/ */
class ResultOfAnswerOfQuestionExpression extends AbstractExpression implements QuestionExpressionInterface{ class ResultOfAnswerOfQuestionExpression extends AbstractExpression implements QuestionExpressionInterface
{
/** /**
* The pattern <b>"/Q[0-9]+\\[[0-9]+\\]/"</b> should match the following expression in a condition <br /> * The pattern <b>"/Q[0-9]+\\[[0-9]+\\]/"</b> should match the following expression in a condition <br />
* <br /> * <br />
......
...@@ -95,17 +95,13 @@ class StringResultExpression extends AbstractExpression implements SolutionExpre ...@@ -95,17 +95,13 @@ class StringResultExpression extends AbstractExpression implements SolutionExpre
public function checkResult($result, $comperator, $index = null) public function checkResult($result, $comperator, $index = null)
{ {
$isTrue = false; $isTrue = false;
if($index == null) if ($index == null) {
{
$values = $result->getUserSolutionsByIdentifier("value"); $values = $result->getUserSolutionsByIdentifier("value");
foreach($values as $value) foreach ($values as $value) {
{
$isTrue = $isTrue || $this->compare($comperator, $value); $isTrue = $isTrue || $this->compare($comperator, $value);
} }
} } else {
else
{
$solution = $result->getSolutionForKey($index); $solution = $result->getSolutionForKey($index);
$isTrue = $this->compare($comperator, $solution["value"]); $isTrue = $this->compare($comperator, $solution["value"]);
} }
...@@ -121,8 +117,7 @@ class StringResultExpression extends AbstractExpression implements SolutionExpre ...@@ -121,8 +117,7 @@ class StringResultExpression extends AbstractExpression implements SolutionExpre
*/ */
private function compare($comperator, $value) private function compare($comperator, $value)
{ {
switch($comperator) switch ($comperator) {
{
case "=": case "=":
return $this->getText() == $value; return $this->getText() == $value;
break; break;
......
...@@ -9,7 +9,8 @@ include_once "ManufacturerInterface.php"; ...@@ -9,7 +9,8 @@ include_once "ManufacturerInterface.php";
* Time: 15:13 * Time: 15:13
* @author Thomas Joußen <tjoussen@databay.de> * @author Thomas Joußen <tjoussen@databay.de>
*/ */
abstract class AbstractManufacturer implements ManufacturerInterface{ abstract class AbstractManufacturer implements ManufacturerInterface
{
/** /**
* Matches a delivered string with a the pattern returned by getPattern implemented in the explicit Manufacturer * Matches a delivered string with a the pattern returned by getPattern implemented in the explicit Manufacturer
...@@ -25,8 +26,7 @@ abstract class AbstractManufacturer implements ManufacturerInterface{ ...@@ -25,8 +26,7 @@ abstract class AbstractManufacturer implements ManufacturerInterface{
$matches = array(); $matches = array();
$num_matches = preg_match_all($this->getPattern(), $subject, $matches); $num_matches = preg_match_all($this->getPattern(), $subject, $matches);
if($num_matches == 0) if ($num_matches == 0) {
{
require_once __DIR__ . '/../Exception/UnableToParseCondition.php'; require_once __DIR__ . '/../Exception/UnableToParseCondition.php';
throw new UnableToParseCondition($subject); throw new UnableToParseCondition($subject);
} }
......
...@@ -9,7 +9,8 @@ include_once "AbstractManufacturer.php"; ...@@ -9,7 +9,8 @@ include_once "AbstractManufacturer.php";
* Time: 15:12 * Time: 15:12
* @author Thomas Joußen <tjoussen@databay.de> * @author Thomas Joußen <tjoussen@databay.de>
*/ */
class ExpressionManufacturer extends AbstractManufacturer{ class ExpressionManufacturer extends AbstractManufacturer
{
/** /**
* A Singleton Instance of the ExpressionManufacturer * A Singleton Instance of the ExpressionManufacturer
...@@ -47,8 +48,7 @@ class ExpressionManufacturer extends AbstractManufacturer{ ...@@ -47,8 +48,7 @@ class ExpressionManufacturer extends AbstractManufacturer{
{ {
$expression = null; $expression = null;
switch(true) switch (true) {
{
case preg_match(ResultOfAnswerOfQuestionExpression::$pattern, $attribute): case preg_match(ResultOfAnswerOfQuestionExpression::$pattern, $attribute):
$expression = new ResultOfAnswerOfQuestionExpression(); $expression = new ResultOfAnswerOfQuestionExpression();
break; break;
...@@ -104,7 +104,8 @@ class ExpressionManufacturer extends AbstractManufacturer{ ...@@ -104,7 +104,8 @@ class ExpressionManufacturer extends AbstractManufacturer{
* *
* @return string * @return string
*/ */
public function getPattern(){ public function getPattern()
{
return return
"/" . "/" .
substr(PercentageResultExpression::$pattern, 1, strlen(PercentageResultExpression::$pattern) - 2) . "|" . substr(PercentageResultExpression::$pattern, 1, strlen(PercentageResultExpression::$pattern) - 2) . "|" .
...@@ -123,7 +124,8 @@ class ExpressionManufacturer extends AbstractManufacturer{ ...@@ -123,7 +124,8 @@ class ExpressionManufacturer extends AbstractManufacturer{
/** /**
* Private constructor to prevent creating of an object of ExpressionManufacturer * Private constructor to prevent creating of an object of ExpressionManufacturer
*/ */
private function __construct(){ private function __construct()
{
require_once __DIR__ . "/../Expressions/AnswerOfQuestionExpression.php"; require_once __DIR__ . "/../Expressions/AnswerOfQuestionExpression.php";
require_once __DIR__ . "/../Expressions/ResultOfAnswerOfQuestionExpression.php"; require_once __DIR__ . "/../Expressions/ResultOfAnswerOfQuestionExpression.php";
require_once __DIR__ . "/../Expressions/PercentageResultExpression.php"; require_once __DIR__ . "/../Expressions/PercentageResultExpression.php";
...@@ -140,5 +142,7 @@ class ExpressionManufacturer extends AbstractManufacturer{ ...@@ -140,5 +142,7 @@ class ExpressionManufacturer extends AbstractManufacturer{
/** /**
* Private clone to prevent cloning an object of ExpressionManufacturer * Private clone to prevent cloning an object of ExpressionManufacturer
*/ */
private function __clone() { } private function __clone()
{
}
} }