The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

# (c) 2004 by Murat Uenalan. All rights reserved. Note: This program is
# free software; you can redistribute it and/or modify it under the same
# terms as perl itself
use Data::Type; 
use Data::Dumper;

use IO::Extended qw(:all);

for( Data::Type::_search_pkg( 'Data::Type::Object::' ) )
{
	println $_;
	
	@_ = ( $_->def =~ m/hasFacet name="(.+?)"/sg ) if $_->can( 'def' );
	
		print <<'HERE';
	sub test : method
	{
		my $this = shift;

		$Data::Type::value = shift;

		my $args;

HERE


	my $cnt = 0;

	my $w = join ' ', @_;
	my $x = join ', ', @_;

		print <<HERE;

			\$args->{ qw($w) } = \@\$this;
			
HERE

	for( @_ )
	{
		$_ = lc $_;
		
	my $tmpl1 = <<HERE;
			Data::Type::ok( 1, Data::Type::Facet::$_( \$args->{$_} ) );
HERE
		print $tmpl1;
	}



		print <<HERE;
	}
		
	sub facets { qw($w) }

	sub doc { 'facets: $x' }
	
HERE

}