* Map<String, List<FactData>> OR ExecutionTrace>
*/
public List<Fixture> lumpyMap(List<Fixture> fixtures) {
List<Fixture> output = new ArrayList<Fixture>();
FixturesMap dataInput = new FixturesMap();
CallFixtureMap callOnDataInput = new CallFixtureMap();
FixtureList verifyFact = new FixtureList();
FixtureList verifyRule = new FixtureList();
FixtureList retractFacts = new FixtureList();
for ( Fixture fixture : fixtures ) {
if ( fixture instanceof FactData ) {
accumulateDataForFactData( dataInput, (FactData) fixture );
} else if ( fixture instanceof CallMethod ) {
accumulateCallMethod( callOnDataInput, (CallMethod) fixture );
} else if ( fixture instanceof ActivateRuleFlowGroup ) {
accumulateDataForActivateRuleFlowGroup( dataInput, fixture );
} else if ( fixture instanceof RetractFact ) {
retractFacts.add( (RetractFact) fixture );
} else if ( fixture instanceof VerifyRuleFired ) {
verifyRule.add( (VerifyRuleFired) fixture );
} else if ( fixture instanceof VerifyFact ) {
verifyFact.add( (VerifyFact) fixture );
} else if ( fixture instanceof ExecutionTrace ) {
gatherFixtures( output, dataInput, callOnDataInput, verifyFact, verifyRule, retractFacts, false );
output.add( fixture );
verifyRule = new FixtureList();
verifyFact = new FixtureList();
retractFacts = new FixtureList();
callOnDataInput = new CallFixtureMap();
dataInput = new FixturesMap();
}
}
gatherFixtures( output, dataInput, callOnDataInput, verifyFact, verifyRule, retractFacts, true );
return output;