Tree [9f9e3f] master /

File Date Author Commit
Help 2014-03-15 Michael Groß Michael Groß [f14c76] Moved related documentation from project JDecis...
src 2014-05-28 Michael Groß Michael Groß [c262ab] prevent FindBugs warning "Load of known null v...
.gitignore 2014-03-15 Michael Groß Michael Groß [f14c76] Moved related documentation from project JDecis...
Changes.txt 2014-07-17 Michael Groß Michael Groß [9f9e3f] added subproject name to group id
LICENSE.txt 2014-01-12 Michael Groß Michael Groß [a5724e] added new year to LICENSE.txt
README.txt 2014-06-04 Michael Groß Michael Groß [4338d7] added doc
THIRD_PARTY_LICENSES.txt 2014-03-16 Michael Groß Michael Groß [8c6c9f] removed dependency to myflipflops for delivered...
nb-configuration.xml 2014-01-29 Michael Groß Michael Groß [5ba69a] moved test methods for Any2Table from Decisiont...
nbactions.xml 2012-02-15 mgmechanics mgmechanics [0130cb] corrected maven goals
pom.xml 2014-07-17 Michael Groß Michael Groß [9f9e3f] added subproject name to group id

Read Me

What can you do with this library?
This is a library for building decision tables and to get test specifications from it.
More about decision tables and how this library works you'll find in the help files for this project.
=> The Help files for this project are located in the folder Help. Examples are located in the folder Examples. <=

This library can give you decision table and test specifications as strings in JSON format.
The project JDecisiontable take this strings and save them as text files.
Thus the example files for this application may be useful for you: => Files => Examples
Thus, any application using JDecisiontableLib may exchange decision tables with any other software using this library.
Furthermore it is possible to get String[][] Arrays with data from Decisiontable and Testspecification objects.

I use to split my projects into a library and an application. While the application part does only GUI stuff (if it is a GUI application)
the library part does the whole business logic. This library is everything you need to build your own application around
process-oriented decision tables without understanding every bit of it.

Java version: The entire software is build using Java 7.

Microsoft® .NET®: You may build a binary for Microsoft® .NET® 4.0 using IKVM ( Such builds were made and successfully tested
with JDecisiontable which uses this library so this should work with library stand-alone also. This means you could use this library in your .NET application!

See for a tutorial, my project JDecisiontable for a How-To. The german journal "Java Spektrum" provides in it's issue "Ausgabe 1, Februar/März '13"
(= issue 1, February/March 2013) an article about coupling Java and .NET and points out that IKVM is the preferred solution for the authors.

You may visit for updates and there is a blog too.

This project, excluded third party works, is licensed under the MIT licence. For details see LICENSE.txt.
Licences of software from third parties, included in this software, are kept in the file THIRD_PARTY_LICENSES.txt.

JDecisiontable is pure Java. It does not depend on any other library. 
The dependencies to JUnit and de.mgmechanics.myflipflops are for testing only. These libraries are not included in the jar file.

Product Roadmap

Version ?
 - Add further support for configuring application flow using a decision table. Although this is possible since version 1.0 it would be nice to have more support.

 - Merge several small decision tables using the Successor to detect antecessor and successor.

 - Use enumerations values rather than boolean values for domain-specific values like Node#isCondition, Rule.isValid, Decisiontable.isValid and Testspecification.isValid.
   Reason: Enumerations values enables to keep value-specific content and even value-specific methods. At this time this not not needed but maybe in the future.