I have a need to generate meaningful test data programatically using either Java or Groovy (Groovy preferred). The data I need includes First Name, Middle Name, Last Name, Address (City, Postal Code, Country, Street), Phone, Email. It would be great if I could add my own logic to the library to address my custom needs for example data for Credit Card or Bank Account, etc. 

Could someone guide me in the right direction?