There is a new release candidate because I made a change and a improvement. Both affects the class Rule.
Change: While playing with JDecisiontable application http://sourceforge.net/projects/jdecisiontable (which uses this library) I found that one would create invalid decision tables while using Rule.setLastYesToNo(). Use Case (RC-2):
1 | 2 | 3 | 4 |
Y | Y | Y | Y |
Y | **N** | N | N |
- | Y | Y | **N** |
- | Y | **N** | N |
Bold are the N wich are replaced by Rule.setLastYesToNo(). All rules are correct as such. But the decision table is invalid because there is one rule missing in rule 4. Lets fix this by replacing the last Decison.No (N) by a Decison.DontCare (-):
1 | 2 | 3 | 4 |
Y | Y | Y | Y |
Y | **N** | N | N |
- | Y | Y | **N** |
- | Y | **N** | - |
And exactly this is the change for Rule.setLastYesToNo() in RC-3: If the algorithm finds a Decision.Yes it replaces the last Decision.Yes by a Decision.No (the bold) letters and than it replaces all decisons below by a Decison.Dontcare as we did with rule 4. Now it is users turn to overwrite the Decison.Dontcare if neccessary.... read more
JDecisiontableLib-1.0-RC-1 has a bug: It was possible to instantiate an object from class rule with less than zero decisions. I fixed it with JDecisiontableLib-1.0-RC-2.
Furthermore I fixed some bugs in the javadoc.