Skip to content
GitLab
Explore
Sign in
formatest
FormATest_QuestionSetPool
Compare revisions
dac62171f9f4b208778bdbb4996d236af1fe3adc to 381d5850e2bde24749dbdf4affb7ff3984e296ea
Show whitespace changes
Inline
Side-by-side
Parser/classes/Exception/QuestionNotReachable.php
View file @
381d5850
...
@@ -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
...
...
Parser/classes/Exception/UnableToParseCondition.php
View file @
381d5850
...
@@ -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
...
...
Parser/classes/Exception/UnsupportedExpression.php
View file @
381d5850
...
@@ -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
...
...
Parser/classes/Exception/UnsupportedOperation.php
View file @
381d5850
...
@@ -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
...
...
Parser/classes/Expressions/AbstractExpression.php
View file @
381d5850
...
@@ -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
{
/**
/**
...
...
Parser/classes/Expressions/AnswerOfQuestionExpression.php
View file @
381d5850
Parser/classes/Expressions/EmptyAnswerExpression.php
View file @
381d5850
...
@@ -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
Parser/classes/Expressions/ExclusiveResultExpression.php
View file @
381d5850
...
@@ -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
;
...
...
Parser/classes/Expressions/ExpressionInterface.php
View file @
381d5850
...
@@ -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
...
...
Parser/classes/Expressions/MatchingResultExpression.php
View file @
381d5850
...
@@ -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
;
...
...
Parser/classes/Expressions/NumberOfResultExpression.php
View file @
381d5850
...
@@ -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
;
...
...
Parser/classes/Expressions/NumericResultExpression.php
View file @
381d5850
...
@@ -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
;
...
...
Parser/classes/Expressions/OrderingResultExpression.php
View file @
381d5850
...
@@ -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
;
...
...
Parser/classes/Expressions/PercentageResultExpression.php
View file @
381d5850
...
@@ -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
;
...
...
Parser/classes/Expressions/QuestionExpressionInterface.php
View file @
381d5850
...
@@ -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
();
}
}
Parser/classes/Expressions/ResultOfAnswerOfQuestionExpression.php
View file @
381d5850
...
@@ -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 />
...
...
Parser/classes/Expressions/SolutionExpressionInterface.php
View file @
381d5850
Parser/classes/Expressions/StringResultExpression.php
View file @
381d5850
...
@@ -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
;
...
...
Parser/classes/Factory/AbstractManufacturer.php
View file @
381d5850
...
@@ -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
);
}
}
...
...
Parser/classes/Factory/ExpressionManufacturer.php
View file @
381d5850
...
@@ -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
()
{
}
}
}
Prev
1
2
3
4
5
6
7
Next