Meta::Ds::Container - base class for all container classes.


Meta documentation Contained in the Meta distribution.

Index


Code Index:

NAME

Top

Meta::Ds::Container - base class for all container classes.

COPYRIGHT

Top

LICENSE

Top

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.

DETAILS

Top

	MANIFEST: Container.pm
	PROJECT: meta
	VERSION: 0.00

SYNOPSIS

Top

	package foo;
	use Meta::Ds::Container qw();
	my($object)=Meta::Ds::Container->new();
	my($result)=$object->method();

DESCRIPTION

Top

This class is meant to be derived from by container classes of all types. This class gives you a few abstract methods to override and thus comply with the container definition. The bonus is getting method which perform combinations of the methods you supplied.

Let me give a few examples: 1. You implement first, over and next and get foreach for free. 2. You call validate and the user of your container can make your container make sure that every object inserted is of a certain type. More ideas will surely follow.

FUNCTIONS

Top

	first($)
	over($)
	next($)
	foreach($$)
	TEST($)

FUNCTION DOCUMENTATION

Top

first($)

Method to be overwridden to supply the first element in the container.

over($)

Method to be overwridden to return whether were done iterating the container.

next($)

Method to be overwridden to move to the next element in the container.

TEST($)

This is a testing suite for the Meta::Ds::Container module. This test is should be run by a higher level management system at integration or release time or just as a regular routine to check that all is well. Currently this test suite does nothing.

SUPER CLASSES

Top

None.

BUGS

Top

None.

AUTHOR

Top

	Name: Mark Veltzer
	Email: mailto:veltzer@cpan.org
	WWW: http://www.veltzer.org
	CPAN id: VELTZER

HISTORY

Top

	0.00 MV md5 issues

SEE ALSO

Top

Error(3), strict(3)

TODO

Top

Nothing.


Meta documentation Contained in the Meta distribution.

#!/bin/echo This is a perl module and should not be run

package Meta::Ds::Container;

use strict qw(vars refs subs);
use Error qw(:try);

our($VERSION,@ISA);
$VERSION="0.00";
@ISA=qw();

#sub first($);
#sub over($);
#sub next($);
#sub foreach($$);
#sub TEST($);

#__DATA__

sub first($) {
	throw Meta::Error::Simple("must be overwridden");
}

sub over($) {
	throw Meta::Error::Simple("must be overwridden");
}

sub next($) {
	throw Meta::Error::Simple("must be overwridden");
}

sub foreach($$) {
	my($self,$code)=@_;
	for(my($obj)=$self->first();!$obj->over();$obj->next()) {
		&$code($obj);
	}
}

sub TEST($) {
	my($context)=@_;
	return(1);
}

1;

__END__