Java Rule Engine Design