Meta Programming

def p = new Project(name:"project");
List<MetaProperty> 	props = p.metaClass.getProperties()
println "------------------------"
String name = ""
String type = ""
 
def records = [:]
props.each { 
	name = it.name
 
	if(name.equalsIgnoreCase("log")
		|| name.equalsIgnoreCase("attached")
		|| name.equalsIgnoreCase("errors")
		|| name.equalsIgnoreCase("dirty")
		|| name.equalsIgnoreCase("metaClass")
		|| name.equalsIgnoreCase("class")
		|| name.equalsIgnoreCase("dirtyPropertyNames")
		|| name.equalsIgnoreCase("version")
		|| name.equalsIgnoreCase("constraints")){
	return
 
	type = it.type
 
	records.put "${name}", "${type}"
}