package test_pcg; sub bean_chainable { my ($tabs, $name, %slots) = @_; my $spaces = ' ' x $tabs; print "${spaces}public class ${name} {\n"; print "${spaces} public ${name}() {}\n"; foreach my $slot_name (keys(%slots)) { my $slot_type = $slots{$slot_name}; my $uc_slot_name = uc(substr($slot_name, 0, 1)) . substr($slot_name, 1, length($slot_name) - 1); print "\n${spaces} private ${slot_type} ${slot_name}_;\n"; print "${spaces} public ${slot_type} get${uc_slot_name}() {\n"; print "${spaces} return this.${slot_name}_;\n"; print "${spaces} }\n"; print "${spaces} public ${name} set${uc_slot_name}" . "(${slot_type} ${slot_name}) {\n"; print "${spaces} this.${slot_name}_ = ${slot_name};\n"; print "${spaces} return this;\n"; print "${spaces} }\n"; } print "${spaces}}\n"; } 1;