int in_nCurrentExpressionIndex,
boolean in_bContainsNegativeExpressions)
{
if(in_nCurrentExpressionIndex >= in_oOriginalConjunction.getExpressions().size())
{
TCGConjunction oNewConjunction = GeneratedFactory.eINSTANCE.createTCGConjunction();
oNewConjunction.getExpressions().addAll(io_colExpressionsForNewConjunction);
oNewConjunction.setPositiveSubExpressionOfOriginal(!in_bContainsNegativeExpressions);
io_colNewConjunctions.get(in_oOriginalConjunction).add(oNewConjunction);
}
else
{
TCGOCLExpression oExpression = TestCaseGraphHelper.copyExpression(
in_oOriginalConjunction.getExpressions().get(in_nCurrentExpressionIndex));
io_colExpressionsForNewConjunction.add(oExpression);
addAllPossibleConjunctions(io_colNewConjunctions, in_oOriginalConjunction, io_colExpressionsForNewConjunction,
in_nCurrentExpressionIndex + 1, in_bContainsNegativeExpressions);
io_colExpressionsForNewConjunction.remove(oExpression);
TCGOCLExpression oNegatedExpression = TestCaseGraphHelper.copyExpression(oExpression);
oNegatedExpression = negateTCGOCLExpression(oNegatedExpression);
TCGDisjunctiveNormalForm oDNF = createDisjunctiveNormalForm(oNegatedExpression);
for(TCGConjunction oNewConjunction : oDNF.getConjunctions())
{
for(TCGOCLExpression oNewConjExp : oNewConjunction.getExpressions())
{
io_colExpressionsForNewConjunction.add(oNewConjExp);
addAllPossibleConjunctions(io_colNewConjunctions, in_oOriginalConjunction, io_colExpressionsForNewConjunction,
in_nCurrentExpressionIndex + 1, true);
io_colExpressionsForNewConjunction.remove(oNewConjExp);