
package Apache::ASP::CGI::Table;

use Carp qw(confess);

=pod

=head1 NAME

  Apache::ASP::CGI::Table - Layer for compatibility with Apache::Table objects

=head1 DESCRIPTION

Layer for compatibility with Apache::Table objects 
while running in CGI or command line / test mode.

=cut

sub new {
    my $class = shift;
    bless {}, $class;
}

sub set { 
    my($self, $key, $value) = @_;
    defined($key) || confess("no key to set value $value");
    $self->{$key} = $value;
}

sub get { shift()->{shift()}; }
sub unset { delete shift()->{shift()} };
sub clear { %{shift()} = (); };
sub add {
    my($self, $name, $value) = @_;

    my $old_value = $self->{$name};
    if(ref $old_value) {
	push(@$old_value, $value);
    } elsif(defined $old_value) {
	$self->{$name} = [$old_value, $value];
    } else {
	$self->{$name} = $value;
    }
}

sub merge { die("merge not implemented"); }

1;
